“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…”)
 
无编辑摘要
第1行: 第1行:
python code
<nowiki>
import numpy as np
from matplotlib import pyplot as plt
import numpy as np
from math import pi, cos, sin
from matplotlib import pyplot as plt
from math import pi, cos, sin


u=1. #x-position of the center
u=1. #x-position of the center
v=0.5 #y-position of the center
v=0.5 #y-position of the center
a=2. #radius on the x-axis
a=2. #radius on the x-axis
b=1.5 #radius on the y-axis
b=1.5 #radius on the y-axis
t_rot=pi/4 #rotation angle
t_rot=pi/4 #rotation angle


t = np.linspace(0, 2*pi, 100)
t = np.linspace(0, 2*pi, 100)
Ell = np.array([a*np.cos(t) , b*np.sin(t)])
Ell = np.array([a*np.cos(t) , b*np.sin(t)])
#u,v removed to keep the same center location
#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)]])
R_rot = np.array([[cos(t_rot) , -sin(t_rot)],[sin(t_rot) , cos(t_rot)]])
#2-D rotation matrix
#2-D rotation matrix


Ell_rot = np.zeros((2,Ell.shape[1]))
Ell_rot = np.zeros((2,Ell.shape[1]))
for i in range(Ell.shape[1]):
for i in range(Ell.shape[1]):
Ell_rot[:,i] = np.dot(R_rot,Ell[:,i])
Ell_rot[:,i] = np.dot(R_rot,Ell[:,i])


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

</nowiki>

2019年6月27日 (四) 03:31的版本

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