“Ellipse”的版本间差异

来自Shiyin's note
跳到导航 跳到搜索
无编辑摘要
无编辑摘要
第4行: 第4行:
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
u=1. #x-position of the center
v=0.5 #y-position of the center
v=0.5 #y-position of the center
第10行: 第10行:
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)])
第16行: 第16行:
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

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

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