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

基于矩阵-向量乘法的多边形旋转及Matlab绘图验证问询

在MATLAB中绘制原多边形及旋转后多边形的完整方案

嘿,我来帮你搞定这个MATLAB绘图和多边形旋转的问题,不仅能实现两幅图的对比展示,还能帮你确认旋转代码的合理性~

一、先搞定原多边形的绘制

首先咱们把给定的顶点坐标整理好,MATLAB的fill函数需要传入x和y坐标的向量,所以可以把顶点存成一个2×5的矩阵(每列对应一个(x,y)顶点):

% 定义原多边形的顶点,每列是一个(x,y)坐标
original_vertices = [0, 1, 7/10, 1/2, 3/10;
                     0, 0, 1,   1/2, 1];
% 提取x和y方向的坐标向量
x_original = original_vertices(1,:);
y_original = original_vertices(2,:);

接下来就可以绘制原多边形了,这里推荐用subplot把两幅图放在同一个窗口里,方便对比:

% 创建1行2列的子图布局,第一个位置放原多边形
subplot(1,2,1);
fill(x_original, y_original, 'lightblue', 'EdgeColor', 'black');
title('原多边形');
axis equal; % 必须加这个!保持坐标轴比例,避免图形被拉伸变形
grid on;

二、旋转矩阵的实现与旋转后多边形绘制

旋转矩阵的核心逻辑

绕原点逆时针旋转θ角的标准旋转矩阵是:

R = [cosθ  -sinθ;
     sinθ   cosθ]

注意!MATLAB里的三角函数都是弧度制的,所以必须先把100度转换成弧度,不然计算出来的旋转角度会完全错误。

代码实现

% 把100度转换成弧度
theta = deg2rad(100);
% 定义旋转矩阵
R = [cos(theta), -sin(theta);
     sin(theta), cos(theta)];
% 用矩阵-向量乘法完成所有顶点的旋转(每列是一个顶点,直接相乘即可)
rotated_vertices = R * original_vertices;
% 提取旋转后的x、y向量
x_rotated = rotated_vertices(1,:);
y_rotated = rotated_vertices(2,:);

然后绘制旋转后的多边形,放在第二个子图位置:

subplot(1,2,2);
fill(x_rotated, y_rotated, 'lightcoral', 'EdgeColor', 'black');
title('旋转100度后的多边形');
axis equal;
grid on;

三、两幅图的展示方式

上面用的是同窗口分栏展示,如果你想要两个独立的窗口分别展示,也可以换成两个figure命令:

% 第一个独立窗口:原多边形
figure(1);
fill(x_original, y_original, 'lightblue', 'EdgeColor', 'black');
title('原多边形');
axis equal; grid on;

% 第二个独立窗口:旋转后的多边形
figure(2);
fill(x_rotated, y_rotated, 'lightcoral', 'EdgeColor', 'black');
title('旋转100度后的多边形');
axis equal; grid on;

四、旋转代码的合理性验证

咱们来逐条确认这段代码是否满足要求:

  • 角度转换正确:用deg2rad()把100度转成弧度,完全符合MATLAB的三角函数要求,避免了直接用角度代入的低级错误。
  • 旋转矩阵合规:严格遵循了标准的逆时针旋转矩阵公式,完全通过矩阵-向量乘法实现旋转,完美契合题目要求。
  • 顶点处理高效:把顶点按列存储,一次性完成所有顶点的旋转,代码简洁不冗余,运行效率高。
  • 视觉效果准确:添加了axis equal,确保旋转后的图形不会因为坐标轴比例问题变形,保证了图形的几何准确性。

如果题目没有指定旋转中心,默认绕原点旋转是完全合理的;如果需要绕多边形的中心旋转,只需要先把顶点平移到原点,旋转后再平移回去即可,不过题目里没提这个需求,所以当前的实现完全满足要求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 06:55:40