真實世界的規模問題我有一些縮放問題 - 我懷疑我錯過了一些東西...也許有人可以設置我直。QGraphicsView/QGraphicsItem
我正在使用QGraphicsScene和QGraphicsView以十進制度的經度和緯度顯示船的位置。對於未啓動的位置是這樣的:
LON:-71.34253緯度:41.549886
這是我設置爲我定製的QGraphicsItem對象的位置。這些是「真實世界」座標。
我的問題是我似乎無法讓我的對象正確顯示,我懷疑我不理解我在繪製paint()函數時應該使用的比例。
我通過PyQt使用Qt,但這應該是相同的,不是嗎?這是我自定義的類,代表一個位置。
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)
運行此代碼時我得到的是黑色的固體塊,這意味着不知我的點被繪製巨型廣場。如果我用drawEllipse()替換drawPoint,如下所示:
painter.drawEllipse(-self.boatlength/2.0,-self.boatlength/2.0, self.boatlength, self.boatlength)
沒有任何東西被繪製......任何想法?
湯姆。
在第一種情況下,您將創建一條線寬爲0的筆並且不使用它。你怎麼得到什麼?在第二種情況下,繪製一個非常小的半徑與大座標中心的橢圓。你如何試圖找到它? – ilotXXI
感謝ilotXXI。我的第一個案例中的筆是剩餘drawEllipse代碼的剩餘部分。你是對的,drawEllipse代碼很奇怪 - 我將它改爲0,0和X和Y半徑的船長的一半,但我仍然得到同樣的結果。我的問題真的是我應該使用什麼半徑?真實世界的座標? –