You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

基于Matlab实现直线绕圆360°(步长20°)旋转并求交点坐标

解决方案:直线绕圆心旋转并求交点

嘿,这个问题其实可以拆解成两步:实现直线绕圆心的旋转,以及计算旋转后直线与圆的交点。刚好原直线是过圆心的,所以交点计算会特别简单,不用复杂的方程求解,直接用极坐标就能搞定!

核心思路

  1. 原直线是从圆心(xc,yc)向左延伸的水平直线,方向角为180°(π弧度)。
  2. 每次绕圆心旋转20°,我们只需要给直线的方向角加上旋转角度,就能得到新的直线方向。
  3. 因为直线始终过圆心,所以它和圆的交点就是圆上沿着直线方向的直径两端点——直接用极坐标公式就能算出坐标。

完整MATLAB代码

% 初始化参数
r = 1; 
xc = 5; 
yc = 5; 
theta_circle = linspace(0, 2*pi); % 圆的角度序列

% 绘制初始圆
x_circle = r*cos(theta_circle) + xc;
y_circle = r*sin(theta_circle) + yc;
figure;
plot(x_circle, y_circle, 'k', 'LineWidth', 1.5); % 黑色圆
axis equal;
hold on;
grid on;
title('直线绕圆心旋转及交点');

% 旋转角度设置:每20度一次,从0到340度(360度和0度重合)
rotation_angles = 0:20:340; 
colors = hsv(length(rotation_angles)); % 生成不同颜色区分各次旋转

% 循环处理每个旋转角度
for idx = 1:length(rotation_angles)
    alpha = rotation_angles(idx); % 当前旋转角度(度数)
    alpha_rad = deg2rad(alpha); % 转换为弧度
    
    % 原直线方向角是180度(向左),旋转后方向角为180°+alpha
    line_angle_rad = deg2rad(180) + alpha_rad;
    
    % 计算直线与圆的两个交点(直径两端)
    % 交点1:沿直线方向的圆上点
    x1 = xc + r*cos(line_angle_rad);
    y1 = yc + r*sin(line_angle_rad);
    % 交点2:直径另一端,方向角+π
    x2 = xc + r*cos(line_angle_rad + pi);
    y2 = yc + r*sin(line_angle_rad + pi);
    
    % 绘制旋转后的直线:从交点2延伸到交点1外侧(比如延长2单位)
    % 直线方向向量
    dx = cos(line_angle_rad);
    dy = sin(line_angle_rad);
    x_line = [x2 - 2*dx, x1 + 2*dx];
    y_line = [y2 - 2*dy, y1 + 2*dy];
    plot(x_line, y_line, 'Color', colors(idx,:), 'LineWidth', 1);
    
    % 绘制交点(红色圆点)
    plot([x1, x2], [y1, y2], 'ro', 'MarkerSize', 6, 'MarkerFaceColor', 'r');
    
    % 输出当前旋转角度的交点坐标
    fprintf('旋转角度%d°:交点1(%.4f, %.4f),交点2(%.4f, %.4f)\n', ...
        alpha, x1, y1, x2, y2);
end

hold off;

代码解释

  • 参数初始化:保留你给定的圆心、半径,同时生成圆的绘图序列。
  • 旋转角度处理:用0:20:340生成18个不同的旋转角度(避免360°和0°重复)。
  • 交点计算:利用极坐标,直接计算旋转后方向角对应的圆上点,以及直径另一端的点——因为直线过圆心,这两个点就是直线与圆的唯一交点对。
  • 绘图部分:用不同颜色绘制每次旋转后的直线,红色圆点标记交点,保证可视化清晰。
  • 输出信息:在命令行打印每个旋转角度对应的交点坐标,方便查看数值结果。

效果说明

运行代码后,你会看到一个固定的黑色圆,以及18条不同颜色的直线(每条对应一次旋转),红色圆点就是每次旋转后直线与圆的交点。同时命令行会输出每个角度的具体交点坐标。

内容的提问来源于stack exchange,提问作者lroca

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.15 08:44:34