python:如何将直线旋转45度

2024-05-19 03:06:32 发布

您现在位置:Python中文网/ 问答频道 /正文

我有两点,并把它们画成一条线,如下图所示。在

fig=plt.figure(figsize=(7,6))
plt.plot(lont[-2:],latt[-2:],'b')
plt.show()

enter image description here

现在我想把这条线旋转45度(取其中一个点作为原点) 我该怎么办?在


Tags: plotshowfigpltfigure原点figsizelont
2条回答

旋转如下所示:

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

相关问题 更多 >

    热门问题