2017-10-04 97 views
-2

我尝试使用下面的公式得出了一个Python椭圆形旋转在python椭圆:用X,Y,THETA

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

Ellipse

这个工作,但是当我尝试旋转得到的椭圆使用:

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度。这是什么造成的? Rotated ellipse

+1

很多缺少一个具有填补代码...:/ –

回答

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

谢谢!这工作。 –

+0

当然,记得接受答案。 –

相关问题