将 QVector<QPoint> vecTempSelectedPos 中的多个点的连 为宽度为4的线,将将带宽度的线转为的多边形
时间: 2024-03-02 15:52:55 浏览: 71
判断点、线、多边形的关系
可以使用 QPainterPath 类的函数来实现将多个点的连线转为宽度为4的多边形。
以下是示例代码:
```
QVector<QPoint> vecTempSelectedPos; // 原始的点集合
QPainterPath path;
QPen pen(Qt::black, 4);
// 将点集合转为线条
for(int i = 0; i < vecTempSelectedPos.size() - 1; i++) {
path.moveTo(vecTempSelectedPos[i]);
path.lineTo(vecTempSelectedPos[i+1]);
}
// 将带宽度的线条转为多边形
QPainterPathStroker stroker(pen);
stroker.setWidth(4);
QPainterPath polygonPath = stroker.createStroke(path);
polygonPath.closeSubpath();
// 绘制多边形
QBrush brush(Qt::gray);
painter.setBrush(brush);
painter.drawPath(polygonPath);
```
其中,QPainterPath 类的 moveTo 函数可以将当前点移动到指定的点,lineTo 函数可以从当前点绘制一条线到指定的点。QPainterPathStroker 类的 createStroke 函数可以将带宽度的线条转为多边形,closeSubpath 函数可以将多边形封闭,绘制多边形时需要设置对应的画刷。
阅读全文