在python中围绕原点旋转曲线

时间:2017-10-24 10:14:59

标签: python numpy matplotlib

我有两条曲线在原点z和y周围相遇,如下所示。当我根据某些功能绘制这些时,我会得到附图。

origin_z = 260
origin_y = 244

plt.plot(phi_z+origin_z,phi_y+origin_y,'b')
plt.plot(phi_z+origin_z,phi_y+origin_y,'r')

enter image description here

phi_z和_y是一些功能(我为了清楚起见而避免发布)。我想围绕指定的原点顺时针旋转这两条线大约45度,但是当我尝试下面的代码时,它只是沿着每个轴进一步移动曲线而不是旋转它们:

phi_z_rot = origin_z + np.cos(45) * (phi_z - origin_z) - np.sin(45) * (phi_z - origin_z)
phi_y_rot = origin_y + np.cos(45) * (phi_y - origin_y) - np.sin(45) * (phi_y - origin_y)

谁能告诉我自己做错了什么?很抱歉没有发布更多功能,但希望没有必要。

1 个答案:

答案 0 :(得分:0)

如果没有太多信息,我可以明确提供的信息很少。无论如何,你的轮换错了。首先,角度是以度为单位而不是弧度,然后使用不正确的旋转矩阵。

避免坐标的平移,正确的旋转如下:

rot = np.pi/4
phi_z_rot = phi_z*np.cos(rot)+phi_y*np.sin(rot)
phi_y_rot = -phi_z*np.sin(rot)+phi_y*np.cos(rot)