qpainterpath 平移(qpainter drawline)

qpainterpath 平移(qpainter drawline)svg xmlns http www w3 org 2000 svg style display none svg

大家好,我是讯享网,很高兴认识大家。



 <svg xmlns="http://www.w3.org/2000/svg" style="display: none"> <path stroke-linecap="round" d="M5,0 0,2.5 5,5z" id="raphael-marker-block" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0)"></path> </svg> <p></p> 

讯享网

QPainterPath 类(绘图路径)提供了一个容器,用于绘图操作,可以创建和重用图形形状。
绘图路径是由许多图形化的构建块组成的对象,例如:矩形、椭圆、直线和曲线。构建块可以加入在封闭的子路径中,例如:矩形或椭圆。封闭的路径的起点和终点是一致的,或者他们可以作为未封闭的子路径独立存在,如:直线和曲线。
QPainterPath 可以被填充、描绘轮廓、裁剪。要为一个指定的绘图路径生成可填充的轮廓,可以使用 QPainterPathStroker 类。与正常绘图相比,QPainterPath 的主要优点在于:复杂的图形只需创建一次,然后只需调用 QPainter::drawPath() 函数即可绘制多次。
QPainterPath 提供了一组函数,可用于获取绘图路径及其元素的信息。除了可以使用 toReversed() 函数来改变元素的顺序外,还有几个函数将 QPainterPath 对象转换成一个多边形表示。

讯享网
 

讯享网

 
讯享网
 

讯享网

三次贝塞尔曲线

c1,c2,为控制点;endPoint为终点点

(c1x,c1y),(c2x,c2y)为控制点,(endPointx,endPointY)为终点

 

绘制直线

从当前点画一条直线到(x,y)点

创建一个占据给定矩形的圆弧,从指定的起始角开始,逆时针方向延伸甜度。角度用度数表示。顺时针的弧可以用负角来指定。
注意:这个函数将弧的起始点连接到当前位置(如果它们还没有连接)。添加弧后,当前位置为弧中的最后一点。要画一条回到第一点的线,可以使用closeSubpath()函数。
0.0f表示0°,120.0f表示120°

例子



把起始点移动到(x,y)

QPainter类在小部件和其他绘制设备上执行低级绘制。QPainter提供了高度优化的功能来完成GUI程序所需的大部分绘图。它可以画任何东西,从简单的线条到复杂的形状,如馅饼和和弦。它还可以绘制对齐文本和像素图。通常,它在一个“自然”的坐标系中绘制,但是它也可以进行视图和世界的转换。QPainter可以对继承QPaintDevice类的任何对象进行操作。QPainter的常见用法是在小部件的绘制事件中:构造并自定义(例如设置画笔或画笔)painter。然后画。记得在绘制完QPainter对象后销毁它。例如:

讯享网

QPainter的核心功能是绘图,但是这个类也提供了几个函数,允许您定制QPainter的设置和它的渲染质量,以及其他启用剪切的函数。此外,您可以通过指定画家的合成模式来控制不同的形状如何合并在一起。函数的作用是:指示画家是否处于活动状态。画家是由begin()函数和接受QPaintDevice参数的构造函数激活的。end()函数和析构函数使其失效。与QPaintDevice和QPaintEngine类一起,QPainter构成了Qt绘制系统的基础。QPainter是用于执行绘图操作的类。QPaintDevice表示一个可以使用QPainter绘制的设备。QPaintEngine提供了画家在不同类型的设备上绘制的界面。如果漆器处于活动状态,device()返回漆器在其上绘制的绘制设备,而paintEngine()返回漆器当前运行的绘制引擎。有关更多信息,请参见绘制系统。有时,让别人在一个不寻常的QPaintDevice上作画是可取的。QPainter支持一个静态函数setre定向()来完成这个任务。
警告:当paintdevice(绘图设备)是一个小部件时,QPainter只能在paintEvent()函数或paintEvent()调用的函数中使用

startAngle是起始角(弧形的起始点与圆心的连线与水平线的夹角)、spanAngle是跨度角

注意:QPainter中的弧度值是以1/16°为单位,在画弧是1°用16表示


讯享网

 

讯享网

画矩形

画直线












画多边形

圆角矩形

椭圆




文本



*point是数组;pointCount是点个数

使用当前钢笔绘制数组点中的第一个pointCount点定义的凸多边形。第一个点隐式连接到最后一个点,多边形由当前画笔()填充。如果所提供的多边形不是凸的,即它至少包含一个大于180度的角,则结果是不确定的。在一些平台上(例如X11), drawConvexPolygon()函数可以比drawPolygon()函数更快。

 
讯享网

常用

常用

画多个点

*point为数组名,pointCount为个数


小讯
上一篇 2025-05-11 20:25
下一篇 2025-05-02 11:33

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/190216.html