以下のコードでは、ボールを 90 度から 44 度に動かし、90 度に戻そうとしています。ボールの中心点の位置を追跡できるようにしたかったのです。ボールに続くマーカーをプロットすることで、これを実行しようとしています。また、ボールが移動するにつれてボールの (x,y) 位置が更新されるのを見続けたいと思います。
1. マーカーがボールの中心に留まり、2. マーカーの (x,y) 位置 (ボールの中心) が移動しても表示され続けるように、コードを変更するのを手伝ってもらえますか?
これが私がこれまでに行ったことです:
close all; clc; clear;
% Define position of arm
theta=0:10:360; %theta is spaced around a circle (0 to 360).
r=0.04; %The radius of our circle.
%Define a circular magenta patch.
x=r*cosd(theta) + 0.075;
y=r*sind(theta) + 1;
% Size figure and draw arms
figure('position', [800, 300, 600, 550]);
point = plot(0.075,1, 'bo', 'markers', 3);
hold on
myShape2=patch(x,y,'m');
set(myShape2,'Xdata',x,'Ydata',y);
axis([-1.5 3 -1 3]); grid on;
n = 1;
T=0.15; %Delay between images
for theta = pi/2:-pi/90:0,
if theta >= pi/4;
theta = theta;
else
theta = pi/2 - theta;
end
Arot = [sin(theta) cos(theta); -cos(theta) sin(theta)];
xyRot = Arot * [x; y]; % rotates the points by theta
xyTrans = xyRot;
point = plot(xyTrans(1, n),xyTrans(2, n), 'bo', 'markers', 3);
hold on;
set(myShape2,'Xdata',(xyTrans(1, :)),'Ydata',(xyTrans(2, :)));
pause(T); %Wait T seconds
end
お時間をいただきありがとうございます。