У меня проблемы с масштабированием - я подозреваю, что что-то упускаю ... возможно, кто-то меня поправит.
Я использую QGraphicsScene и QGraphicsView для отображения положения лодки с использованием широты и долготы в десятичных градусах. Для непосвященных позиции выглядят так:
LON: -71.34253 LAT: 41.549886
Это позиции, которые я устанавливаю для своих пользовательских объектов QGraphicsItem. Это координаты «реального мира».
Моя проблема в том, что мне кажется, что мои объекты не отображаются должным образом, и я подозреваю, что не понимаю масштаб, который я должен использовать, когда рисую в своей функции paint ().
Я использую Qt через PyQt, но это должно быть так же, не так ли? Вот мой собственный класс, который представляет позицию.
class myGraphicsFix(QGraphicsItem):
def __init__(self):
super().__init__()
self.lat = 0.0
self.lon = 0.0
self.boatlength = 1.5696e-6 # assuming 6371 km earth diameter, 10 m boat length
def setLatLon(self, tlat, tlon):
self.lat = tlat
self.lon = tlon
self.setPos(self.lat, self.lon)
def paint(self, painter, option, widget):
pen = QPen(Qt.SolidLine)
pen.setColor(Qt.black)
pen.setWidth(0.0)
painter.drawPoint(QPointF(0.0,0.0))
def boundingRect(self):
return QRectF(-self.boatlength/2.0,-self.boatlength/2.0, +self.boatlength/2.0, self.boatlength)
Когда этот код запускается, все, что я получаю, - это сплошной черный блок, что означает, что мои точки каким-то образом нарисованы как гигантские квадраты. Если я заменю drawPoint на drawEllipse () следующим образом:
painter.drawEllipse(-self.boatlength/2.0,-self.boatlength/2.0, self.boatlength, self.boatlength)
Вообще ничего не рисуется ... Есть мысли?
Том.