http://imgur.com/R9npR.gif
圓內擺線圖

此為R=3 , r = 1 的圓內擺線圖

以下附上程式碼(參考張智星教授的課本習題)

請自行參透其中奧義

有疑問可以留言

 

 


 

clear all;
% x = 0:0.01:2*pi;
theta = 0:0.01: 2*pi;
r = 1;
r2= 3;
x2 = r2 * cos(theta);
y2 = r2 * sin(theta);
bigcircleH = plot(x2,y2);
plot(x2,y2);
hold on
y = sin(theta);
x = cos(theta);
circle = r*exp(sqrt(-1)*theta);
%  subplot(2,1,1);
circleH=plot(x,y); axis image
set(circleH, 'erase', 'xor');
axis([-4,4,-4,4]);
% axis([-r2-r, r2+r, -0.5, 2*r+0.5]);
dot1H=line(0, 0, 'marker', 'o', 'color', 'k', 'erase', 'xor');
dot2H=line(0, 0, 'marker', '.', 'color', 'r', 'erase', 'none');
% plot(circle);hold on


for i=1:length(theta)
set(circleH, 'xdata', 2*cos(theta(i))+x, 'ydata', 2*sin(theta(i))+y);
angle=-2*theta(i);
    drawnow
set(dot1H, 'xdata', cos(angle)+2*cos(theta(i)), 'ydata', sin(angle)+2*sin(theta(i)));
set(dot2H, 'xdata', cos(angle)+2*cos(theta(i)), 'ydata', sin(angle)+2*sin(theta(i)));
% line('xdata', x(i)+cos(angle), 'ydata', r+sin(angle), 'color', 'r', 'marker', '.');
drawnow
end


 

 

 

 

weselyong 發表在 痞客邦 PIXNET 留言(1) 人氣()


留言列表 (1)

發表留言
  • Monica
  • 您好:
    我是一個使用matlab的新手,目前我在試繪圖這個部分,在畫圓弧時
    遇到了一個問題,一般的圓弧的起點和終點座標只能是0-1之間,但是
    我想要圓弧是可以有不同的起點和終點座標。
    theta=1.2490
    theta2=linspace(0,theta*2,100);
    x0=r*cos(theta2);
    y0=r*sin(theta2);
    plot(x0,y0,'g');
    目前已可以画出圆弧,但如何设定圆弧的起点和终点?
    因为我想要在起点(5, 4)和终点(3.2, 4.6)上画此一圆弧。
    非常感謝您
    如有打擾到您,真的很抱歉。
  • 能不能附上比較完整的程式碼看看呢?
    你的意思是你只要一段弧,不想要整個圓嗎?
    你目前是使用r*theta的參數是形式
    當theta從0~2pi的時候可以形成一個圓
    所以你可以限定theta為你想要的角度

    weselyong 於 2011/02/25 22:48 回覆