“Ellipse”的版本间差异

来自Shiyin's note
跳到导航 跳到搜索
(创建页面,内容为“<nowiki> 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 ce…”)
 
无编辑摘要
 
(未显示同一用户的2个中间版本)
第1行: 第1行:
python code
<nowiki>
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
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)
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()

</nowiki>

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