Qt画带箭头直线


            QLineF line(lastPoint, endPoint);
            double angle = std::atan2(-line.dy(), line.dx());
            qreal arrowSize = 10;
            QPointF arrowP1 = line.p2() - QPointF(sin(angle + M_PI / 3) * arrowSize,
                                            cos(angle + M_PI / 3) * arrowSize);
            QPointF arrowP2 = line.p2() - QPointF(sin(angle + M_PI - M_PI / 3) * arrowSize,
                                            cos(angle + M_PI - M_PI / 3) * arrowSize);
            QPolygonF arrowHead;
            arrowHead  << line.p2() << arrowP2 << arrowP1;

            painter.drawLine(line);
            painter.drawLine(endPoint, arrowP1);
            painter.drawLine(endPoint, arrowP2);
           效果图:

如果想画实心的三角箭头

可以使用drawPolygon画一个封闭的三角形区域,然后使用QBrush去填充;

猜你喜欢

转载自blog.csdn.net/weixin_28927079/article/details/106135480
今日推荐