在运行结果中可以调整正多边形的边长和边的数量

这个是示例图,如果在图上可以标出各个角的大小更好
上午好☀️☀️☀️️
本答案参考通义千问
以下是一个MATLAB代码示例,用于绘制一个正多边形,并计算其外角和(恒为360°)。代码中允许用户调整正多边形的边长和边的数量,并且会标注每个外角的角度。
% 清空环境
clear; clc; close all;
% 用户输入:边的数量和边长
n = input('请输入正多边形的边数 (n): '); % 边数
side_length = input('请输入正多边形的边长 (side_length): '); % 边长
% 计算正多边形的顶点坐标
theta = linspace(0, 2*pi, n+1); % 角度范围从0到2π,分成n+1份
x = side_length * cos(theta); % x坐标
y = side_length * sin(theta); % y坐标
% 绘制正多边形
figure;
plot(x, y, 'b-', 'LineWidth', 2); % 绘制正多边形
hold on;
plot([0, x(1)], [0, y(1)], 'r--', 'LineWidth', 1.5); % 连接第一个点和原点
axis equal; % 确保坐标轴比例相同
grid on;
% 标注外角
for i = 1:n
% 计算当前外角角度
ext_angle = 360 / n; % 每个外角的角度
% 计算当前边的起点和终点
start_x = x(i);
start_y = y(i);
end_x = x(i+1);
end_y = y(i+1);
% 计算当前边的方向向量
dx = end_x - start_x;
dy = end_y - start_y;
% 计算方向向量的单位向量
length_vec = sqrt(dx^2 + dy^2);
unit_dx = dx / length_vec;
unit_dy = dy / length_vec;
% 计算外角的方向
angle_rad = atan2(dy, dx); % 当前边的角度(弧度)
angle_ext_rad = angle_rad + pi/2; % 外角方向(顺时针旋转90度)
% 外角箭头的位置(在边的中点处)
mid_x = (start_x + end_x) / 2;
mid_y = (start_y + end_y) / 2;
% 绘制外角箭头
arrow_x = mid_x + 0.1 * side_length * cos(angle_ext_rad);
arrow_y = mid_y + 0.1 * side_length * sin(angle_ext_rad);
quiver(mid_x, mid_y, arrow_x - mid_x, arrow_y - mid_y, 0.5, 'Color', 'g'); % 绘制箭头
% 标注外角角度
text(mid_x, mid_y, sprintf('%d°', ext_angle), 'HorizontalAlignment', 'center', 'VerticalAlignment', 'middle');
end
% 显示外角总和
disp(['正多边形的外角和为: 360°']); % 外角和恒为360°
% 设置图形标题
title(['正多边形 (边数: ', num2str(n), ', 边长: ', num2str(side_length), ')']);
输入参数:
n 是正多边形的边数。side_length 是正多边形的边长。正多边形顶点计算:
(x, y)。绘制正多边形:
plot 函数绘制正多边形,并用 quiver 函数绘制外角箭头。标注外角:
360 / n。显示结果:
假设输入 n = 6 和 side_length = 2,运行后会生成如下图形:
60°。希望这段代码能满足你的需求!