欢迎光临散文网 会员登陆 & 注册

趣味数学:圆上的两个点

2023-06-09 15:18 作者:金华流年  | 我要投稿

% matlab脚本

% GPT画的


% Define circle

r = 1; % radius

theta = 0:0.01:2*pi; % angle range

x = r*cos(theta);

y = r*sin(theta);

% Initialize figure

figure

h_circle = plot(x, y, 'k');

hold on

h_blue = plot(r, 0, 'bo','MarkerFaceColor', 'b');

h_yellow = plot(r, 0, 'yo','MarkerFaceColor', 'y');

% Set axis

axis equal

axis([-3*r-0.5, 3*r+0.5, -3*r-0.5, 3*r+0.5])

xlabel('X')

ylabel('Y')

% Move points and draw lines

blue_angle = 0;

yellow_angle = 0;

for k = 1:1800

% Update angles

blue_angle = blue_angle - 2*pi/60;

yellow_angle = yellow_angle + 2*pi/120;

% Calculate positions

blue_x = r*cos(blue_angle);

blue_y = r*sin(blue_angle);

yellow_x = r*cos(yellow_angle);

yellow_y = r*sin(yellow_angle);

% Update points

set(h_blue, 'XData', blue_x, 'YData', blue_y);

set(h_yellow, 'XData', yellow_x, 'YData', yellow_y);

% Calculate direction vector

dx = yellow_x - blue_x;

dy = yellow_y - blue_y;

% Normalize direction vector

mag = sqrt(dx^2 + dy^2);

dx = dx / mag;

dy = dy / mag;

% Extend line to 6 times the diameter

start_x = blue_x - 3*r*dx;

start_y = blue_y - 3*r*dy;

end_x = yellow_x + 3*r*dx;

end_y = yellow_y + 3*r*dy;

% Draw line

plot([start_x, end_x], [start_y, end_y], 'm');

% Redraw

drawnow

pause(0.05) % slow down the drawing a bit

end

hold off

趣味数学:圆上的两个点的评论 (共 条)

分享到微博请遵守国家法律