使用x,y,θ在python中旋转椭圆

使用x,y,θ在python中旋转椭圆,python,numpy,Python,Numpy,我尝试使用以下等式在python中绘制椭圆: xpos = a*np.cos(theta) ypos = b*np.sin(theta) 这是可行的,但当我尝试使用以下方法旋转生成的椭圆时: xpos = xpos*np.cos(np.pi/2)+ypos*np.sin(np.pi/2) ypos = -xpos*np.sin(np.pi/2)+ypos*np.cos(np.pi/2) 椭圆变成一条直线,而不是仅仅旋转90度。是什么导致了这种情况?您的问题是,您首先重新定义了xpo,并将其

我尝试使用以下等式在python中绘制椭圆:

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

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

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

椭圆变成一条直线,而不是仅仅旋转90度。是什么导致了这种情况?

您的问题是,您首先重新定义了
xpo
,并将其用于新的
ypo
,基本上您没有同时进行坐标变换

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

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()

需要填写的大量缺失代码…:/