1

原点 0,0 (中心ではなく) までポリゴンの頂点をその場で変換する必要があります。

私は多角形( 8x64 )(定義済みの頂点を持つ)を持っています:

QPolygonF cursor;
cursor << QPointF(-4, 32); 
cursor << QPointF(-4, -32);
cursor << QPointF(4, -32);
cursor << QPointF(4, 32);

次に、それを描画してカーソルとして使用します。

QPixmap pixmap( cursor.boundingRect().width()+1, cursor.boundingRect().height()+1 );
pixmap.fill( QColor( Qt::black) );

QPixmap alpha = pixmap.createMaskFromColor(QColor( Qt::black ),Qt::MaskOutColor);
pixmap.setAlphaChannel( alpha );

QPainter painter( &pixmap );
painter.setPen( QPen( Qt::green) );

// move to center, because polygon coordinated starts from center
painter.translate(cursor.boundingRect().width()/2, cursor.boundingRect().height()/2 );
painter.drawPolygon( cursor );

setCursor( pixmap );

しかし、マウスをクリックした後、この多角形の中心にマウスの位置があります。これは正常で論理的です。

質問、ポリゴンをオンザフライで変換する方法(変換マトリックスなど)を0,0原点に変換し、マウスをクリックした後に上部の左座標(中心ではなく)を取得する方法は?

4

0 に答える 0