Qt绘制图形的交、并、补
主要用到了
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);}
带有内部填充的效果与代码状态如下:
![](/assets/blank.gif)
![](/assets/blank.gif)
![](/assets/blank.gif)
非填充状态的交并补:
![](/assets/blank.gif)
![](/assets/blank.gif)
![](/assets/blank.gif)
Qt绘制图形的交、并、补相关推荐
- XDGE_RayMarchine 1- 利用Frag Shader绘制图形
Render/RayMarchine/Base 1- 利用Frag绘制图形 @author: 白袍小道-胡言乱语 @Read: 转载说明 目录 Render/RayMarchine/Base 1- 利 ...
- Render/RayMarchine/Base 1- 利用Frag Shader绘制图形
Render/RayMarchine/Base 1- 利用Frag绘制图形 @author: 白袍小道-胡言乱语 @Read: 转载说明 目录 Render/RayMarchine/Base 1- 利 ...
- qt绘制一圈圆_Qt绘制圆形,矩形等图形 绘制同心圆
原来Qt也可以绘制图形啊. 利用QPainter类来绘制,再辅以其他类,诸如QPen来说明绘制的画笔,QPoint来说明某个点,QPaletee来说明绘制的颜料等等.在QWidget类中来实现虚拟函数 ...
- qt中实现绘制图形与截图
引言 实现可以选择线型,线宽,颜色,是否填充图形来绘制各种常见的图形,同时可以选择矩形区域来实现截图. 效果 绘图的效果如上,截图的效果: 实现 项目使用的qt5.13.2,编译器为MSVC2017_ ...
- Qt使用OpenGL绘制图形
OpenGL与Qt Qt使用OpenGL绘制图形介绍 例程: 绘制点 绘制多边形 使用缓存 为图形设置颜色 实现3D效果 Qt使用OpenGL绘制图形介绍 QOpenGLWidget类是一个用来渲染O ...
- Qt [GC9-18]:液晶仪表素材准备及转速表和速度表实现 Qlabel绘制图形
基于Qt的汽车仪表模拟 由于我的希望是尽可能的复原仪表的动态,如果晚上找资源的话,那可定是会有很大的误差,所以我决定自己手动用PS描一个出来,这里就遇到一个极大的问题,网上资料中,所有GE仪表盘的图片 ...
- Qt如何实现实时鼠标绘制图形
展示效果 功能实现 想要实现鼠标拖拽绘图的效果,离不开鼠标的三大事件:按下.移动.释放 那么具体实现实时绘制矩形框的核心流程是什么呢? 第一步:鼠标左键点击,记录初始点击位置 第二步:在窗口中移动鼠标 ...
- QT根据参数绘制图形+重复绘制路径的简单方法(QT系列8)
本文将分为两部分 1.获取LineEdit的内容,并通过该内容绘制图形. 2.使用QPainterPath来绘制重复的路径 一.获取LineEdit的内容绘制 1.新建工程 基类类型选择为QWidge ...
- 数据分析-Jupyter,Matplotlib介绍-Matplotlib绘制图形
数据分析 Jupyter介绍 Jupyter Notebook是以网页的形式打开,可以在网页页面中直接编写代码和运行代码,代码的运行结果也会直接在代码块下显示的程序.如在编程过程中需要编写说明文档,可 ...
最新文章
- python 按照要求对字符串进行处理
- 轮胎扎了“钉子”该怎么办?到底要不要拔掉?
- RBSP、SODB、EBSP三者的区别和联系 SPS: sequence parameter sets
- python中astr是啥_python的基本操作
- win7电脑浏览器证书过期的解决方法
- 百度贴吧发帖软件_贴吧自动发帖软件
- 高德地图安卓 拖拽选点_行车记录仪当“眼睛” 高德地图手机AR导航再次升级...
- tensorflow 读取cifar_对tensorflow中cifar-10文档的Read操作详解
- 摄像头 保存到外网服务器_直播平台搭建千万不要忽略流媒体服务器的存在
- openssl学习笔记--CA及https网站证书配置
- linux shell脚本开发工具,技术|10个工具让你的 shell 脚本更强大
- Java将byte流转换成zip文件_java zip文件的压缩与解压
- 电信跨域跨系统业务实践
- python中卡方检验_python 使用卡方检验
- KVM虚拟化常用API
- html复习第六天 京东首页布局(导航栏/左侧)
- 人脸实名认证实现方案(微信H5百度云篇)
- Python项目:基于Python+Django实现药品管理系统
- cv2.matchTemplate模板匹配和cv2.minMaxLoc()函数
- 文明重启怎么做RUST堡垒_文明重启怎么地下建房-地下建房技巧
热门文章
- 解决Mac上打开txt文件乱码问题
- js 正则是否包含某些字符串_web前端:JavaScript 字符串是否包含某个字符串
- 什么是 include?什么是 main() ?
- osr\OsrPINVOKE.cs(191,10): error CS0111: Type 'OsrPINVOKE' already defines a member called '.cctor'
- 使用物理引擎进行碰撞检测
- 2015080501 - 理想和执着理想的人
- Java实现 LeetCode 212 单词搜索 II
- V版S7 edge 升级Android8.0教程
- 华为OD机试 - 九宫格(Java JS Python)
- 2023中国本土电子元器件分销商营收排名Top50+