“Ellipse”的版本间差异

来自Shiyin's note
跳到导航 跳到搜索
无编辑摘要
无编辑摘要
 
(未显示同一用户的1个中间版本)
第1行: 第1行:
python code
python code
import numpy as np
import numpy as np
from matplotlib import pyplot as plt
from matplotlib import pyplot as plt
from math import pi, cos, sin
u=1. #x-position of the center
from math import pi, cos, sin
v=0.5 #y-position of the center
a=2. #radius on the x-axis
b=1.5 #radius on the y-axis
t_rot=pi/4 #rotation angle


t = np.linspace(0, 2*pi, 100)
u=1. #x-position of the center
Ell = np.array([a*np.cos(t) , b*np.sin(t)])
v=0.5 #y-position of the center
a=2. #radius on the x-axis
#u,v removed to keep the same center location
R_rot = np.array([[cos(t_rot) , -sin(t_rot)],[sin(t_rot) , cos(t_rot)]])
b=1.5 #radius on the y-axis
t_rot=pi/4 #rotation angle
#2-D rotation matrix


t = np.linspace(0, 2*pi, 100)
Ell_rot = np.zeros((2,Ell.shape[1]))
for i in range(Ell.shape[1]):
Ell = np.array([a*np.cos(t) , b*np.sin(t)])
Ell_rot[:,i] = np.dot(R_rot,Ell[:,i])
#u,v removed to keep the same center location
R_rot = np.array([[cos(t_rot) , -sin(t_rot)],[sin(t_rot) , cos(t_rot)]])
#2-D rotation matrix


plt.plot( u+Ell[0,:] , v+Ell[1,:] ) #initial ellipse
Ell_rot = np.zeros((2,Ell.shape[1]))
plt.plot( u+Ell_rot[0,:] , v+Ell_rot[1,:],'darkorange' ) #rotated ellipse
for i in range(Ell.shape[1]):
plt.grid(color='lightgray',linestyle='--')
Ell_rot[:,i] = np.dot(R_rot,Ell[:,i])
plt.show()

plt.plot( u+Ell[0,:] , v+Ell[1,:] ) #initial ellipse
plt.plot( u+Ell_rot[0,:] , v+Ell_rot[1,:],'darkorange' ) #rotated ellipse
plt.grid(color='lightgray',linestyle='--')
plt.show()

2019年6月27日 (四) 03:33的最新版本

python code

   import numpy as np
   from matplotlib import pyplot as plt
   from math import pi, cos, sin
   u=1.       #x-position of the center
   v=0.5      #y-position of the center
   a=2.       #radius on the x-axis
   b=1.5      #radius on the y-axis
   t_rot=pi/4 #rotation angle
   t = np.linspace(0, 2*pi, 100)
   Ell = np.array([a*np.cos(t) , b*np.sin(t)])  
        #u,v removed to keep the same center location
   R_rot = np.array([[cos(t_rot) , -sin(t_rot)],[sin(t_rot) , cos(t_rot)]])  
        #2-D rotation matrix
   Ell_rot = np.zeros((2,Ell.shape[1]))
   for i in range(Ell.shape[1]):
       Ell_rot[:,i] = np.dot(R_rot,Ell[:,i])
   plt.plot( u+Ell[0,:] , v+Ell[1,:] )     #initial ellipse
   plt.plot( u+Ell_rot[0,:] , v+Ell_rot[1,:],'darkorange' )    #rotated ellipse
   plt.grid(color='lightgray',linestyle='--')
   plt.show()