用x,y,th在python中旋转椭圆

2024-04-26 20:21:39 发布

您现在位置:Python中文网/ 问答频道 /正文

我尝试用python中的以下等式绘制一个椭圆:

xpos = a*np.cos(theta)
ypos = b*np.sin(theta)

Ellipse

这是可行的,但当我尝试使用以下方法旋转生成的椭圆时:

^{pr2}$

椭圆变成一条直线,而不是仅仅旋转90度。是什么造成的?Rotated ellipse


Tags: 方法np绘制sincos直线椭圆theta
1条回答
网友
1楼 · 发布于 2024-04-26 20:21:39

你的问题是,你首先要重新定义xpos,然后把它用于新的ypos,基本上你没有同时进行坐标变换。在

如果为新坐标系中的点创建新变量,则会得到旋转椭圆。在

import numpy as np
import matplotlib.pyplot as plt

theta = np.arange(0, 2*np.pi, 0.01)
a = 1
b = 2

xpos = a*np.cos(theta)
ypos = b*np.cos(theta)

new_xpos = xpos*np.cos(np.pi/2)+ypos*np.sin(np.pi/2)
new_ypos = -xpos*np.sin(np.pi/2)+ypos*np.cos(np.pi/2)

plt.plot(xpos, ypos, 'b-')
plt.plot(new_xpos, new_ypos, 'r-')

plt.show()

相关问题 更多 >