2024-05-19 03:06:32 发布
网友
我有两点,并把它们画成一条线,如下图所示。在
fig=plt.figure(figsize=(7,6)) plt.plot(lont[-2:],latt[-2:],'b') plt.show()
现在我想把这条线旋转45度(取其中一个点作为原点) 我该怎么办?在
旋转如下所示:
newx = (x1 - xorigin)*cos(45 * pi / 180) newy = (y1 - yorigin)*sin(45 * pi / 180)
如果其中一个点是原点,则只需将其应用于另一个点
import matplotlib.pyplot as plt import numpy as np import pandas as pd angle = np.deg2rad(45) lont = pd.Series([1, 2, 4, 6]) latt = pd.Series([4, 6, 3, 2]) R = (lont.diff()**2 + latt.diff()**2)**0.5 theta = np.arctan(latt.diff()/lont.diff()) Xnew = lont.shift(1)+ R*np.cos(angle + theta) Ynew = latt.shift(1) + R*np.sin(angle+ theta) fig=plt.figure() plt.plot(lont, latt,'-ob') plt.plot([lont.iloc[-n-2], Xnew.iloc[-n-1]], [latt.iloc[-n-2], Ynew.iloc[-n-1]], ":*r") plt.show()
旋转如下所示:
如果其中一个点是原点,则只需将其应用于另一个点
相关问题 更多 >
编程相关推荐