Comment définir QGraphicsScene/Vue à un système de coordonnées spécifique
Je veux dessiner des polygones dans un QGraphicsScene
mais où les polygones a la latitude/longitude positions. Dans une projection équirectangulaire les coordonnées va de:
^
90
|
|
-180----------------------------------->180
|
|
-90
Comment puis-je régler le QGraphicsScene
/QGraphicsView
à une telle projection?
Merci beaucoup,
Carlos.
Vous devez vous connecter pour publier un commentaire.
Utilisation
QGraphicsScene::setSceneRect()
comme suit:Si vous êtes préoccupé par l'axe vertical mal tournée, vous avez quelques options pour la façon de traiter avec cela. Une façon est de simplement multiplier par -1 à chaque fois que vous effectuez un calcul impliquant la coordonnée y de la. Une autre façon est à la verticale flip le QGraphicsView, à l'aide de
view->scale(1, -1)
de sorte que la scène est affichée correctement.Ci-dessous est un exemple qui utilise la dernière technique. Dans l'exemple, j'ai sous-classé QGraphicsScene de sorte que vous pouvez cliquer dans la vue, et la coutume de la scène affichera cliquez sur le poste à l'aide de
qDebug()
. Dans la pratique, vous n'avez pas réellement besoin de la sous-classe QGraphicsScene.