Qt 绘画系统
文章平均质量分 78
# Qt 绘画系统
hitzsf
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
绘画系统(01):【纲】Paint System[官翻]
QPainter用于执行绘制操作,QPaintDevice是可以使用QPainter绘制的二维空间的抽象,并且QPaintEngine提供了绘制器用来在不同类型的设备上绘制的接口。QPaintEngine类由QPainter和QPaintDevice内部使用,并且除非它们创建自己的设备类型,否则对应用程序程序员而言是隐藏的。Qt的绘画系统可以使用相同的API在屏幕和打印设备上绘画,并且主要基于QPainter,QPaintDevice 和 QPaintEngine类。这些类为在绘画设备上绘画提供支持。原创 2022-09-27 14:03:58 · 504 阅读 · 0 评论 -
绘画系统(02):【纲】Paint Devices and Backends[官翻]
QPaintDevice类是可以绘制的对象的基类,即QPainter可以在任何QPaintDevice子类上绘制。QPaintDevice的绘制功能由QWidget,QImage,QPixmap,QPicture,QPrinter和QOpenGLPaintDevice实现。原创 2022-09-27 14:04:53 · 300 阅读 · 0 评论 -
绘画系统(03):【类】QPainter[官翻]
QPainter提供了绘制大多数图元的函数:drawPoint(),drawPoints(),drawLine(),drawRect(),drawRoundedRect( ),drawEllipse( ),drawArc( ),drawPie( ),drawChord( ),drawPolyline( ),drawPolygon( ),drawConvexPolygon( )和drawCubicBezier( )。在某些情况下,也可以使用昂贵的操作,例如,将结果缓存在QPixmap中。原创 2022-09-27 14:17:48 · 2078 阅读 · 0 评论 -
绘画系统(04):【类】QPaintDevice[官翻]
在创建任何绘画设备之前,Qt要求存在QGuiApplication对象。virtual paintEngine() 函数,以告诉QPainter应该使用哪个绘画引擎在此特定设备上绘制。的绘制功能当前由QWidget,QImage,QPixmap,QGLPixelBuffer,QPicture和QPrinter。才能在设备上进行绘制,即从QPaintEngine派生并重新实现其虚拟功能。另请参见QPaintEngine,QPainter,坐标系和绘画系统。是可以使用QPainter绘制的二维空间的抽象。原创 2022-09-27 14:18:40 · 657 阅读 · 0 评论 -
绘画系统(05):【类】QPaintEngine[官翻]
提供的主要绘制引擎是光栅绘制引擎,它包含一个软件光栅化程序,该光栅化程序支持所有受支持平台上的全部功能集。在Windows,X11和macOS上,它是QImage绘画的后端,并且用作不支持某些功能的绘画引擎的后备。要使用QPainter绘制到另一后端,则必须继承QPaintEngine的子类并重新实现其所有虚拟功能。该枚举用于描述绘画引擎具有的功能。如果引擎不支持某个功能,则QPainter将尽最大努力通过其他方式来仿真该功能,并将具有alpha混合效果的QImage传递给引擎,并提供仿真结果。原创 2022-09-27 14:25:26 · 926 阅读 · 0 评论 -
绘画系统(06):【类】QPaintPath[官翻]
请注意,新路径的初始currentPosition( )将具有(0,0 )。两者之间的区别在于它们返回的多边形数量:toSubpathPolygons() 为每个子路径创建一个多边形,而不管相交的子路径(即重叠的边界矩形)如何,而toFillPolygons() 函数仅为重叠的子路径创建一个多边形。QPainterPath类还提供了几个方便的功能,可将封闭的子路径添加到绘制器路径:addEllipse( ),addPath( ),addRect( ),addRegion( )和addText( )。原创 2022-09-27 14:28:15 · 3164 阅读 · 0 评论 -
绘画系统(14):【类】QRegion[官翻]
可以通过使用united() ,intersected() ,subtracted() 或xored() (异或)组合简单区域来创建复杂区域。另请参见QPainter :: setClipRegion() ,QPainter :: setClipRect() 和QPainterPath。在区域上进行迭代(使用begin() ,end() 或C ++ 11范围循环)将区域分解为矩形。另请参见rbegin() 和rend()。另请参见begin() 和end()。指定要创建的区域的形状。原创 2022-09-27 14:29:31 · 859 阅读 · 0 评论 -
绘画系统(101):【例】量角器
可以通过使用united() ,intersected() ,subtracted() 或xored() (异或)组合简单区域来创建复杂区域。另请参见QPainter :: setClipRegion() ,QPainter :: setClipRect() 和QPainterPath。在区域上进行迭代(使用begin() ,end() 或C ++ 11范围循环)将区域分解为矩形。另请参见rbegin() 和rend()。另请参见begin() 和end()。指定要创建的区域的形状。原创 2022-09-27 14:31:08 · 385 阅读 · 0 评论 -
绘画系统(102):【例】太极图
【代码】绘画系统(102):【例】太极图。原创 2022-09-27 14:32:17 · 340 阅读 · 0 评论 -
Qt 图像合成模式(一): Porter-Duff 规则
文章目录1. Qt 图像合成模式(一) Composition_Modes_Demo1.1 官方档案内容摘要1.2 **enum QPainter::CompositionMode**1.3 山寨Qt合成模式图片的代码1.4 **Porter-Duff** 规则1.4.1 Source Over (源覆盖)1.4.2 Clear1.4.3 Destination1.4.4 DestinationAtop1.4.5 DestinationIn1.4.6 DestinationOut1.4.7 Dest原创 2020-09-17 01:36:14 · 3035 阅读 · 1 评论 -
Qt 图像合成模式(二): SourceIn_Demo
文章目录1. Qt 图像合成模式(二): SourceIn_DemoWidget.hWidget.cpp 1. Qt 图像合成模式(二): SourceIn_Demo 这个例子中的思路和图片素材都是采用《Java 极富客户端》的例子。Qt普及性的资料实在是不够,只有掌握了其他部分知识的学习才能用好Qt,对于C++来说这无可厚非,但是对于集成式的Qt框架,解决方案都已经固定了,相关的资料应该可以更加的细致。相对来说 Java中的基础性的知识还是比较多的,知识由浅入深,有原理有代码有资源,比较容易学习原创 2020-09-18 13:24:22 · 804 阅读 · 1 评论 -
Qt 渐变(一): 线性渐变 :自定义QPushbutton
文章目录1、Qt 渐变(一): 线性渐变DepthButton.hDepthButton.cppWidget.cpp 1、Qt 渐变(一): 线性渐变 QLinearGradient类与QBrush结合使用以指定线性渐变画笔。 线性渐变会在起点和终点之间插入颜色。 在这些点之外,将根据当前设置的扩展方法来填充,反射或重复渐变。 使用QGradientStop类型的停止点(即位置和颜色)定义渐变中的颜色。 使用QGradient :: setColorAt()或QGradient :: setStops()函原创 2020-09-19 01:05:17 · 3171 阅读 · 2 评论 -
Qt 渐变(二): 线性渐变与合成模式实现倒影
1、Qt 渐变(二): 线性渐变与合成模式一起,实现倒影 依然是《 Java极富客户端》中的例子。 原始图像原始图像+倒影原始图像+倒影+合成模式 倒影是客户端中最流行的效果之一,而且还是最容易实现的效果之一(这一点令人惊奇) 。倒影的概念是通过模拟像光亮的塑料和擦亮的金属一样的可反射物质来提高用户界面的真实性。 要达到同样的效果,需要一个GradientPaint, 一个AlphaComposite和一些理论。创建一个 反射的过程需要三个步骤: 1) 像正常渲染一个物体一样渲染它原创 2020-09-19 20:25:54 · 528 阅读 · 0 评论 -
Qt 渐变(三) 径向渐变的定义和构造函数的详解
文章目录1、Qt 渐变(三): 径向渐变的详解1.1 径向渐变的定义1.2演示代码 Widget.cpp 1、Qt 渐变(三): 径向渐变的详解 1.1 径向渐变的定义 不同于线性渐变,径向渐变比较复杂,先从基础的部分开始。 径向渐变的说明: 简单的径向渐变会在焦点和围绕它的圆上的端点之间插入颜色。 扩展的径向渐变可在焦点圆和中心圆之间插入颜色。 由两个圆定义的圆锥外的点将是透明的。 对于简单的径向渐变,将焦点调整为位于中心圆内,而在扩展的径向渐变中,焦点可以位于任何位置。 在范围之外,将根据当前设置的扩原创 2020-09-20 14:16:30 · 806 阅读 · 0 评论 -
Qt 渐变(四) 径向渐变的使用
文章目录前言一、径向渐变实现光照效果1.1 焦点在圆内部,简单径向渐变1.2 、焦点在圆外,简单径向渐变1.3 、焦点在圆外,扩展径向渐变二、径向渐变实现球体总结 前言 径向渐变类型:如果构造函数中焦点圆无焦点圆的半径,那就是简单径向,否则就是扩展径向渐变,扩展径向中焦点圆可以是0 。 光照效果:当照射在有光泽的物体上时出现在这个物体上的明亮的光斑。 一、径向渐变实现光照效果 光照效果很重要,可以提供对一个物体形状的强烈视觉感受。 1.1 焦点在圆内部,简单径向渐变 纯黑色背景焦点在内部中心位置 代码原创 2020-09-20 21:48:03 · 2164 阅读 · 1 评论 -
Qt 渐变(五):线性渐变和径向渐变生成星空图
1、Qt 渐变(五): DrawShapes Demo 参考《Java极富客户端》中的例子 DrawShapes 仿 DrawShapes的代码:其思路都尽量和原代码接近。 在DrawShapes演示中可以看到基本形状的用法样例。这个演示的截屏图如下显示,这个图中通过在屏幕的不同区域点击鼠标创建 圆环和 星星。 知识点: 线性渐变、径向渐变 、画家路径 以及 随机数 定义形状的容器:使用简单的QList对象: QList<QPainterPath> shapes; 在mouseP原创 2020-09-20 22:14:25 · 891 阅读 · 1 评论 -
Qt 渐变(六): 锥形渐变的使用
文章目录前言一、锥形渐变是什么?二、示例代码总结 前言 在Qt中锥形渐变属于是最简单的渐变。只需要定义一个中心点,和一个其实角度,按照逆时针方向进行渐变,而且没有spread设置 一、锥形渐变是什么? QConicalGradient 锥形渐变插值围绕 中心点 逆时针 插值。 QConicalGradient 使用QGradientStop类型的停止点(即位置和颜色)定义渐变中的颜色。 使用QGradient :: setColorAt()或QGradient :: setStops()函数来定义停止点.原创 2020-09-21 12:41:14 · 1536 阅读 · 1 评论
分享