我尝试使用以下等式在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)
答案 0 :(得分:2)
您的问题是,您首先要重新定义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()