MATLAB³ÌÐò£º
clear
hd=pi/180;
m=10; %Ä£Êý
h=1.25; %¶¥¸ßϵÊý
ha=h*m; %³Ý¶¥¸ß
hc=1.25*m; %³Ý¸ù¸ß
arpha=20*hd; %ѹÁ¦½Ç
p=pi*m; %½Ú¾à
z1=5; %¹öµ¶³ÝÊý
z=12; %¹¤¼þ³ÝÊý
x=0.0; %±äλϵÊý
df=m*z; %·Ö¶ÈÔ²Ö±¾¶
da=m*z+2*ha; %¶¥Ô²Ö±¾¶
dc=m*z-2*hc; %¸ùÔ²Ö±¾¶
rack_bottom=p/2-2*hc*tan(arpha); %³ÝÌõµÄµ×¿í
rack_top=p/2-2*ha*tan(arpha); %³ÝÌõµÄ¶¥¿í
rack_tan=(p-(rack_bottom+rack_top))/2; %³ÝÌõµÄб±ß¿í
theta_=[]; %Ϊ¼«×ø±ê»Í¼½«¼«½Ç·ÖÅäÊý×é
rho_=[];
x0=df/2+x*m; %³ÝÌõµÄ½ÚÏ߯ðµã×ø±ê
y0=5*p/2;
[theta_(1,:),rho_(1,:)]=cart2pol([x0,x0],[y0,-y0]); %½ÚÏߵļ«×ø±ê
rack_x(1,1)=x0+hc; %³ÝÌõ¸ùÏßµÚÒ»µãX×ø±ê
rack_y(1,1)=-(z1*p/2-rack_bottom/2); %³ÝÌõ¸ùÏßµÚÒ»µãY×ø±ê
rack_x(1,2)=x0-ha; %³ÝÌõ¶¥ÏßµÚ¶þµãX×ø±ê
rack_y(1,2)=rack_y(1,1)+rack_tan; %³ÝÌõ¶¥ÏßµÚ¶þµãY×ø±ê
rack_x(1,3)=x0-ha; %³ÝÌõ¸ùÏßµÚÈýµãX×ø±ê
rack_y(1,3)=rack_y(1,2)+rack_top; %³ÝÌõ¸ùÏßµÚÈýµãY×ø±ê
rack_x(1,4)=x0+hc; %³ÝÌõ¶¥ÏßµÚËĵãX×ø±ê
rack_y(1,4)=rack_y(1,3)+rack_tan; %³ÝÌõ¶¥ÏßµÚËĵãY×ø±ê
for j=5:z1*4
rack_x(1,j)=rack_x(1,j-4);
rack_y(1,j)=rack_y(1,j-4)+p; %³ÝÌõµÄz1¸ö³Ý£¬¹²z1*4¸ö½ÇµãµÄ×ø±êÖµ
end
theta=0:pi/20:2*pi;
ddc=dc*ones(size(theta));
ddf=df*ones(size(theta));
dda=da*ones(size(theta));
rack_=[];
s=0;
figure
polar(theta,dda./1.94,'y');
hold on
h=polar(theta,dda/2,'k');
% hold on
xx1 = get(h, 'xdata');
yy1 = get(h, 'ydata');
fill(xx1, yy1, [0.6,0.6,0.6])
polar(theta,ddf./2,'r--');
hold on
polar(theta_(1,:),rho_(1,:),'g');
hold on
polar(theta,ddc/2,'m');
hold on
%%%%%%%%%%%%%%%%%% ¹ö¶¯Õ¹³É %%%%%%%%%%%%%%%%%%%%%%
% for i=2:1:361
% s=(df/2)*hd+s;
% rack_x(i,:)=rack_x(1,:);
% rack_y(i,:)=rack_y(1,:)-s;
% if s>p
% s=mod(s,p);
% end
% [tt(i,:),hh(i,:)]=cart2pol(rack_x(i,:),rack_y(i,:));
% direction = [0 0 1];
% rack_(i)=polar(tt(i,:),hh(i,:),'m');
% rotate(rack_(i),direction,i)
% pause(0.05)
% end
%%%%%%%%%%%%%%%%%%% ¹ö³ÝÄ£ÄâÕ¹³É %%%%%%%%%%%%%%%%%%%%%
t = 0;
rack_xx=rack_x(1,:);
rack_yy=rack_y(1,:);
for i=1:1:360
s=(df/2)*hd;
t = t+s;
rack_x(i,:) = rack_xx;
rack_y(i,:) = rack_yy;
if t>p
t=0;
rack_yy = rack_yy -p;
end
[tt(i,:),hh(i,:)]=cart2pol(rack_x(i,:),rack_y(i,:));
direction = [0 0 1];
polar(tt(i,:),hh(i,:),'m');
h_rack = findobj(gca,'Type','line');
rotate(h_rack,direction,1)
rack_yy = rack_yy + s;
pause(0.05)
end
![ÓÚ±¾Õ¾Ñ§Ï°¶à£¬Ìṩһµãѧϰ×÷Òµ¸ø³õѧÕß¡£MATLABÄ£ÄâÕ¹³É³ÝÂÖ]()
untitled.png |