Я изменил координаты, чтобы вы видели линию с самого начала.Я также добавил QApplication
, чтобы он был автономным.
import pyqtgraph.opengl as gl
from pyqtgraph.Qt import QtWidgets
import numpy as np
import sys
if __name__ == '__main__':
app = QtWidgets.QApplication(sys.argv)
w = gl.GLViewWidget()
xx = 0
yx = 0
zx = 0
xy = 1
yy = 0
zy = 0
Xdot = (xx, yx, zx)
Ydot = (xy, yy, zy)
pts = np.array([Xdot, Ydot])
sh1 = gl.GLLinePlotItem(pos=pts, width=1, antialias=False)
w.addItem(sh1)
w.show()
app.exec()
Вы можете добавить больше сегментов с помощью
Zdot = (1, 1, 1)
pts = np.array([Xdot, Ydot, Zdot])
Чтобы установить центр (точку, вокруг которой вращается камера)):
from pyqtgraph import Vector
w.opts['center'] = Vector(0,0,10)
Чтобы установить позицию (относительно этого центра, угол места и азимут - это углы в градусах):
w.setCameraPosition(distance=10, elevation=42, azimuth=42)
Чтобы заблокировать позицию, которую вы должны унаследовать от GLViewWidget и перегрузкиmouseMoveEvent
и wheelEvent
.Грязный путь таков:
def empty(ev):
return None
w.mouseMoveEvent = empty
w.wheelEvent = empty
Вы определяете пустую функцию и устанавливаете события ввода мыши для этой функции.