通过生成适当的角度和对应的半径值,利用极坐标系统绘制出具有特定花瓣形状的玫瑰图。通过调整 sin 函数中的倍数和幅度,可以生成不同形状和数量的玫瑰图。
运行结果

代码
clc; clear; close all;
theta = linspace(0, 2 * pi, 1000); % 角度
r = 1 + 0.5 * sin(5 * theta); % 半径,形成玫瑰图形状
figure;
polarplot(theta, r, 'LineWidth', 2);
title('玫瑰图');
运行原理(解析)
-
清理环境:
clc; clear; close all;clc: 清空命令窗口。clear: 清除工作空间中的所有变量。close all: 关闭所有打开的图形窗口。
-
生成角度:
theta = linspace(0, 2 * pi, 1000); % 角度linspace(0, 2 * pi, 1000): 生成从 0 到 (2\pi)(一个完整的圆周)的 1000 个等间距点,表示角度。
-
计算半径:
r = 1 + 0.5 * sin(5 * theta); % 半径,形成玫瑰图形状- 这里,半径
r是一个关于角度theta的函数。sin(5 * theta)表示一个周期为 ( \frac{2\pi}{5} ) 的正弦波,乘以 0.5 使得波动幅度为 0.5。 1 + 0.5 * sin(5 * theta)表示半径在 0.5 到 1.5 之间变化,形成多个“花瓣”效果。5表示玫瑰图的花瓣数量(每个半周期产生一个花瓣)。
- 这里,半径
-
绘制极坐标图:
figure; polarplot(theta, r, 'LineWidth', 2); title('玫瑰图');figure: 创建一个新的图形窗口。polarplot(theta, r, 'LineWidth', 2): 在极坐标系中绘制半径r随角度theta变化的曲线,并设置线宽为 2。title('玫瑰图'): 为图形添加标题。
总结
这段代码通过生成适当的角度和对应的半径值,利用极坐标系统绘制出具有特定花瓣形状的玫瑰图。通过调整 sin 函数中的倍数和幅度,可以生成不同形状和数量的玫瑰图。
如需帮助,或有导航、定位滤波相关的代码定制需求,请点击下方卡片联系作者
1万+

被折叠的 条评论
为什么被折叠?



