how to reduce this circle
1 view (last 30 days)
Show older comments
I made this matlabfile: I only don't understand why the rotating blue ''circle'' is bigger then the circle before rotating? can please anyone help me
if true
% code
t = linspace(0,2*pi,1000)
h1=3; %y-coordinaat center van circel 1
k1=3; %z-coordinaat center van circel 1
r1=0.2; %straal cirkel 1
h2=5;%y-coordinaat center van circel 2
k2=3; %y-coordinaat center van circel 2
r2=0.1 %straal cirkel 2
%cirkel 1
y1 = r1*cos(t)+h1;
z1 = r1*sin(t)+k1;
%cirkel 2
y2 = r2*cos(t)+h2;
z2 = r2*sin(t)+k2;
% grafiek 1
S1 = subplot(1,2,1);
ha=fill(y1,z1,'r'); %cirkel 1
hold on
hb=fill(y2,z2,'b'); %cirkel 2
hold on
hc=plot([h1,h2],[k1,k2],'k') %lijn tussen de cirkels
L = fill(y2,z2,'b'); % cirkel 2 die om de as van cirkel 1 gaat draaien
title('Before Rotation')
axis([0 6 0 6]);
axis('square');
P = [0,0,1]; % Rotatie vector
Rp = [h1 k1]; % Het punt waarom gedraaid gaat worden
%grafiek 2
S2 = subplot(1,2,2);
L = fill(y2,z2,'b')
Xd = get(L,'xdata');
Yd = get(L,'ydata');
K2 = plot(Xd,Yd,'*');
title('After Rotation')
axis([0 6 0 6]);
axis('square');
hold on
ha=fill(y1,z1,'r'); %cirkel 1
hold on
hb=fill(y2,z2,'b'); %cirkel 2
hold on
hc=plot([h1,h2],[k1,k2],'k'); %lijn tussen de twee cirkels
hold on
plot(Rp(1),Rp(2),'*r')
L2 = plot([h1,h2],[k1,k2],'k');
XL = get(S1,'xlim');
YL = get(S1,'ylim');
Dx = diff(XL);
Dy = diff(YL);
for ii = 1:72
set(S2,'xlim',[Rp(1)-Dx Rp(1)+Dx],'ylim',[Rp(2)-Dy Rp(2)+Dy])
rotate(K2,P,5) % draait 5 graden per tijd
set(S2,'xlim',[Rp(1)-Dx Rp(1)+Dx],'ylim',[Rp(2)-Dy Rp(2)+Dy])
rotate(L2,P,5) % draait 5 graden per tijd
xlim(XL)
ylim(YL)
pause(.05)
end
end
0 Comments
Answers (0)
See Also
Categories
Find more on Interactions, Camera Views, and Lighting in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!