这里有一个解决方案,你可以输入两个角度(度)和一个弧线方向(顺时针或逆时针)。你还可以输入半径。为了平移弧线,你可以在X和Y轴上添加两个标量。
import pyqtgraph as pg
import numpy as np
from pyqtgraph.Qt import QtCore, QtGui
def Get_Points(r, a1, a2, nbPoints,clockwise=True):
a1_rad = np.radians(a1)
if a1_rad <0:
a1_rad += 2 * np.pi
a2_rad = np.radians(a2)
if a2_rad <0:
a2_rad += 2 * np.pi
if a1_rad > a2_rad:
if clockwise:
t= np.linspace( a1_rad,a2_rad, nbPoints)
else:
t = np.linspace(a2_rad, a1_rad - 2 * np.pi,nbPoints)
else:
if clockwise:
t= np.linspace(a2_rad, a1_rad,nbPoints)
else:
t = np.linspace(a1_rad, a2_rad - 2 * np.pi, nbPoints)
x = r * np.cos(t)
y = r * np.sin(t)
return x, y
win = pg.GraphicsLayoutWidget(show=True, title="Plotting")
win.setFixedSize(500, 500)
p = win.addPlot(title='')
r = 10
a1 = 80
a2 = -200
x,y = Get_Points(r, a1, a2, 1000,clockwise=True)
c = pg.PlotCurveItem(x,y,cl=True)
p.setXRange(-1.5 * r, 1.5 * r, padding=0)
p.setYRange(-1.5 * r, 1.5 * r, padding=0)
p.addItem(c)
if __name__ == '__main__':
import sys
if (sys.flags.interactive != 1) or not hasattr(QtCore, 'PYQT_VERSION'):
QtGui.QApplication.instance().exec_()