how to reduce this circle

1 view (last 30 days)
Hilde Jansen
Hilde Jansen on 26 Feb 2015
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

Answers (0)

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!