如何获取 drawLine() 函数影响的点/坐标列表?例如,如果我有
QLineF line(10.0, 80.0, 90.0, 20.0);
QPainter(this);
painter.drawLine(line);
我想获取 drawLine() 将绘制的 QPoint 坐标列表。我知道Bresenham 的 line algorithm,但是我需要它在更一般的情况下工作,我可以设置不同的 QPen 和 QBrush:
painter.setPen(QPen(myColor, myWidth, Qt::SolidLine, Qt::RoundCap));
我还需要它与可能绘制具有相同端点和参数但没有 Qt 的线的其他程序保持一致,因此我希望最终得到相同的结果,并且没有完全不同的差异。
注意:这与这个问题不同,因为我需要所有将受绘图功能影响的像素,而不仅仅是多边形/路径的顶点。
更新:我认为可以将 QImage 或 QPainterDevice 和 QPaintEngine 子类化以捕获所有“setPixel()”操作。任何人都可以证明或确认,甚至可能编写一个短代码来做到这一点吗?