需要即时变换多边形顶点,直到原点 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 原点并在鼠标单击左上角坐标(而不是中心)后获得?