python 根据角度边长画图matplotlib
时间: 2025-05-01 22:34:32 浏览: 18
### 使用 Python 和 Matplotlib 绘制指定角度和边长的图形
为了实现根据给定的角度和边长来绘制图形,可以利用 `matplotlib` 的功能创建多边形或多条线段。下面展示了一个具体的例子,该例子通过计算顶点坐标并将其连接起来形成所需的几何形状。
#### 计算顶点位置
对于任意一个多边形来说,如果已知中心点、每一边长度以及各角相对于水平方向的角度,则可以通过三角函数求得各个端点的位置:
\[ x_{i} = center\_x + length \times cos(angle_i) \]
\[ y_{i} = center_y + length \times sin(angle_i) \]
其中 \(angle_i\) 是第 i 条边对应的起始角度(单位为弧度),\(length\) 表示这条边的实际长度,而 (center_x, center_y) 则代表整个图形的重心或参考点[^1]。
#### 创建绘图环境
首先需要导入必要的库,并初始化一个合适的画布尺寸以便更好地查看最终效果:
```python
import matplotlib.pyplot as plt
from math import pi, radians, cos, sin
plt.figure(figsize=(8, 6))
```
#### 定义辅助方法用于转换极坐标到直角坐标系下的点
这一步骤有助于简化后续代码逻辑,使得输入参数更加直观易懂:
```python
def polar_to_cartesian(center, angle_degrees, radius):
"""Converts a point from polar coordinates to cartesian."""
angle_radians = radians(angle_degrees)
return (
center[0] + radius * cos(angle_radians),
center[1] + radius * sin(angle_radians)
)
```
#### 构建具体实例:五边形案例
这里假设要构建的是一个具有五个相等内角且所有边长相等的正五边形为例说明过程:
```python
num_sides = 5
side_length = 2.0
start_angle = 90 # Starting at top like on clock face.
angles = [(start_angle + k*(360/num_sides)) % 360 for k in range(num_sides)]
vertices = []
for ang in angles:
vertices.append(polar_to_cartesian((0, 0), ang, side_length))
xs, ys = zip(*vertices)
# Close the polygon by repeating first vertex after last one
xs += xs[:1]
ys += ys[:1]
plt.fill(xs, ys, edgecolor='blue', fill=False, linewidth=2)
plt.gca().set_aspect('equal')
plt.show()
```
上述脚本会生成一张包含蓝色轮廓线条所包围区域的地图,在此区域内形成了由用户设定好的特定数量侧面组成的闭合路径[^2]。
阅读全文
相关推荐














