主要用到了

QPainterPath

QPolygonF

和QPainter类的drawPolygon函数

实验代码

#include "mainwindow.h"
#include "ui_mainwindow.h"MainWindow::MainWindow(QWidget *parent) :QMainWindow(parent),ui(new Ui::MainWindow)
{ui->setupUi(this);
}MainWindow::~MainWindow()
{delete ui;
}void MainWindow::paintEvent(QPaintEvent *event)//绘制事件里写这些!
{Q_UNUSED(event);QPainter painter(this);//创建画笔//路径QPainterPath pa1;pa1.addEllipse(100,100,300,300);QPainterPath pa2;pa2.addEllipse(200,200,250,250);//路径转多边形QPolygonF f1 = pa1.toFillPolygon();QPolygonF f2 = pa2.toFillPolygon();//交并补QPolygonF un = f1.united(f2);//并QPolygonF su = f1.subtracted(f2);//差QPolygonF in = f1.intersected(f2);//交//设置绘制样式painter.setPen(QPen(QColor(0,255,0,180)));//描边颜色painter.setBrush(QBrush(Qt::red));//填充颜色(不设置就只是线)//绘制painter.drawPolygon(un);//painter.drawPolygon(su);//painter.drawPolygon(in);}

带有内部填充的效果与代码状态如下:

非填充状态的交并补:

Qt绘制图形的交、并、补相关推荐

  1. XDGE_RayMarchine 1- 利用Frag Shader绘制图形

    Render/RayMarchine/Base 1- 利用Frag绘制图形 @author: 白袍小道-胡言乱语 @Read: 转载说明 目录 Render/RayMarchine/Base 1- 利 ...

  2. Render/RayMarchine/Base 1- 利用Frag Shader绘制图形

    Render/RayMarchine/Base 1- 利用Frag绘制图形 @author: 白袍小道-胡言乱语 @Read: 转载说明 目录 Render/RayMarchine/Base 1- 利 ...

  3. qt绘制一圈圆_Qt绘制圆形,矩形等图形   绘制同心圆

    原来Qt也可以绘制图形啊. 利用QPainter类来绘制,再辅以其他类,诸如QPen来说明绘制的画笔,QPoint来说明某个点,QPaletee来说明绘制的颜料等等.在QWidget类中来实现虚拟函数 ...

  4. qt中实现绘制图形与截图

    引言 实现可以选择线型,线宽,颜色,是否填充图形来绘制各种常见的图形,同时可以选择矩形区域来实现截图. 效果 绘图的效果如上,截图的效果: 实现 项目使用的qt5.13.2,编译器为MSVC2017_ ...

  5. Qt使用OpenGL绘制图形

    OpenGL与Qt Qt使用OpenGL绘制图形介绍 例程: 绘制点 绘制多边形 使用缓存 为图形设置颜色 实现3D效果 Qt使用OpenGL绘制图形介绍 QOpenGLWidget类是一个用来渲染O ...

  6. Qt [GC9-18]:液晶仪表素材准备及转速表和速度表实现 Qlabel绘制图形

    基于Qt的汽车仪表模拟 由于我的希望是尽可能的复原仪表的动态,如果晚上找资源的话,那可定是会有很大的误差,所以我决定自己手动用PS描一个出来,这里就遇到一个极大的问题,网上资料中,所有GE仪表盘的图片 ...

  7. Qt如何实现实时鼠标绘制图形

    展示效果 功能实现 想要实现鼠标拖拽绘图的效果,离不开鼠标的三大事件:按下.移动.释放 那么具体实现实时绘制矩形框的核心流程是什么呢? 第一步:鼠标左键点击,记录初始点击位置 第二步:在窗口中移动鼠标 ...

  8. QT根据参数绘制图形+重复绘制路径的简单方法(QT系列8)

    本文将分为两部分 1.获取LineEdit的内容,并通过该内容绘制图形. 2.使用QPainterPath来绘制重复的路径 一.获取LineEdit的内容绘制 1.新建工程 基类类型选择为QWidge ...

  9. 数据分析-Jupyter,Matplotlib介绍-Matplotlib绘制图形

    数据分析 Jupyter介绍 Jupyter Notebook是以网页的形式打开,可以在网页页面中直接编写代码和运行代码,代码的运行结果也会直接在代码块下显示的程序.如在编程过程中需要编写说明文档,可 ...

最新文章

  1. python 按照要求对字符串进行处理
  2. 轮胎扎了“钉子”该怎么办?到底要不要拔掉?
  3. RBSP、SODB、EBSP三者的区别和联系 SPS: sequence parameter sets
  4. python中astr是啥_python的基本操作
  5. win7电脑浏览器证书过期的解决方法
  6. 百度贴吧发帖软件_贴吧自动发帖软件
  7. 高德地图安卓 拖拽选点_行车记录仪当“眼睛” 高德地图手机AR导航再次升级...
  8. tensorflow 读取cifar_对tensorflow中cifar-10文档的Read操作详解
  9. 摄像头 保存到外网服务器_直播平台搭建千万不要忽略流媒体服务器的存在
  10. openssl学习笔记--CA及https网站证书配置
  11. linux shell脚本开发工具,技术|10个工具让你的 shell 脚本更强大
  12. Java将byte流转换成zip文件_java zip文件的压缩与解压
  13. 电信跨域跨系统业务实践
  14. python中卡方检验_python 使用卡方检验
  15. KVM虚拟化常用API
  16. html复习第六天 京东首页布局(导航栏/左侧)
  17. 人脸实名认证实现方案(微信H5百度云篇)
  18. Python项目:基于Python+Django实现药品管理系统
  19. cv2.matchTemplate模板匹配和cv2.minMaxLoc()函数
  20. 文明重启怎么做RUST堡垒_文明重启怎么地下建房-地下建房技巧

热门文章

  1. 解决Mac上打开txt文件乱码问题
  2. js 正则是否包含某些字符串_web前端:JavaScript 字符串是否包含某个字符串
  3. 什么是 include?什么是 main() ?
  4. osr\OsrPINVOKE.cs(191,10): error CS0111: Type 'OsrPINVOKE' already defines a member called '.cctor'
  5. 使用物理引擎进行碰撞检测
  6. 2015080501 - 理想和执着理想的人
  7. Java实现 LeetCode 212 单词搜索 II
  8. V版S7 edge 升级Android8.0教程
  9. 华为OD机试 - 九宫格(Java JS Python)
  10. 2023中国本土电子元器件分销商营收排名Top50+