2021SC@SDUSC
目录
void QPainter::drawEllipse(int x, int y, int width, int height)
silhouetteimagegenerator.cpp分析
分析概括
模块功能
silhouetteimaggenerator模块的主要功能在于通过输入的二维图像绘制关键点轮廓圆和点与点之间的连接关系,如下图中的昆虫绿色部分轮廓:

QPainter类
QPainter提供了高度优化的功能,可以完成GUI程序所需的大多数绘图。它可以绘制从简单的线条到复杂的形状(如馅饼和和弦)的所有内容。它还可以绘制对齐的文本和像素映射。
(QPainter类函数介绍:QPainter class |Qt GUI 5.15.7)
1.开启抗锯齿(反走样)功能。
painter.setRenderHint(QPainter::Antialiasing, true);
2.绘制由以(x, y)开头的矩形定义的椭圆
void QPainter::drawEllipse(int x, int y, int width, int height)
3.其他绘图接口
drawPoint(), drawPoints() 画点,参数是QPoint对象。
drawLine(), drawLines() 绘制直线,参数是QLine对象。
drawRect(), drawRoundedRect(),drawRects()绘制矩形,后者为圆角矩形。参数为QRect对象。
drawArc() 绘制弧线,参数是QRect对象和起点终点角度。
drawPie() 绘制扇形,参数是QRect对象和起点终点角度。
drawChord() 绘制弦,参数是QRect对象和起点终点角度。
drawPolyline()绘制多点连接的线,参数是QPoints对象。
drawPolygon()绘制多边形,参数是QPoints对象。
drawConvexPolygon() 绘制凸多边形,参数是QPoints对象。
fillRect() 填充一个矩形,无边框线。参数是QRect对象和QBrush对象。
eraseRect() 擦除某个背景区域,显示窗体背景色。参数是QRect对象。
QPainterPath类
QPainterPath类提供了一个容器,用于绘图操作,可以创建和重用图形形状。QPainterPath是一个图形构建块的对象,如矩形、椭圆、直线和曲线。构建块可以加入在封闭的子路径中,例如:矩形或椭圆形。一个封闭的路径同时存在开始点和结束点。或者作为未封闭的子路径独立存在,如:直线和曲线。QPainterPath可以进行填充、显示轮廓和裁剪。要生成可填充的轮廓的绘图路径,可以使用QPainterPathStroker类。QPainterPath比正常绘制的主要优点在于:复杂的图形只需创建一次,然后可以仅仅通过调用QPainter::drawPath()函数来进行多次绘制。
关键代码分析
silhouetteimagegenerator.h分析
Snapshot类分析
class Snapshot
{
public:
std::map<QString, QString> canvas;画布

本文介绍了轮廓图像生成器模块的工作原理及其实现细节,重点分析了如何利用QPainter类绘制关键点轮廓圆和点间连接路径,展示了高效的图形绘制方法。
最低0.47元/天 解锁文章
912

被折叠的 条评论
为什么被折叠?



