Qt の Qpainter を使用して描画とペイントを行う QuantumGIS をカスタマイズしています...
メッセージキューを介して更新されるポリラインをキャンバスに描画しようとしています..描画は非常にうまくいきます...しかし、更新として取得するポリラインまたはポリゴンオブジェクトには、角度フィールドも含まれていますオブジェクトの回転に使用します。問題は、ポリラインがqpainterによってpainter.rotate()メソッドを使用して描画される直前に線を回転しようとすると、線はうまく回転しますが、描画される線の位置が変わります..そしてズームするたびに変わります. Qgis キャンバスのパン.. painter.rotate() を設定する前に、私はペインターの状態を保存し、描画した後、OpenGL の push/popMatrix 関数に類似していると思われるその状態を再び復元します。Qpainter の保存復元関数は、opengl の push/popMatrix 関数と同様に機能しますか??
コードスニペットは次のとおりです。
p->save();
//p->rotate(45);
p->scale( 1.0 / rasterScaleFactor, 1.0 / rasterScaleFactor );
p->drawPolyline( pa );
p->restore();
助けていただければ幸いです。ありがとう。