2017-10-04 69 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

當然,記得接受答案。 –

相關問題