2024-04-26 20:21:39 发布
网友
我尝试用python中的以下等式绘制一个椭圆:
xpos = a*np.cos(theta) ypos = b*np.sin(theta)
这是可行的,但当我尝试使用以下方法旋转生成的椭圆时:
椭圆变成一条直线,而不是仅仅旋转90度。是什么造成的?
你的问题是,你首先要重新定义xpos,然后把它用于新的ypos,基本上你没有同时进行坐标变换。在
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()
你的问题是,你首先要重新定义
xpos
,然后把它用于新的ypos
,基本上你没有同时进行坐标变换。在如果为新坐标系中的点创建新变量,则会得到旋转椭圆。在
相关问题 更多 >
编程相关推荐