Qt 之图形(简笔画-绘制卡通蚂蚁)

2024-05-27 19:38

本文主要是介绍Qt 之图形(简笔画-绘制卡通蚂蚁),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

作者: 一去、二三里
个人微信号: iwaleon
微信公众号: 高效程序员

关于简笔画的介绍很多,有动物、水果、蔬菜、交通工具等,通常会对绘制一步步进行拆分、组合。然后绘制为我们想要的结果。

下面来介绍另外的一个种类:昆虫类-卡通蚂蚁。

绘制

效果

具体的效果如下所示,我们可以再进行更好的完善。

这里写图片描述

源码

主要分为以下三部:

  • 绘制屁股
  • 绘制肚子
  • 绘制头部

注意:绘制的时候,由于各个部分的颜色不同,而且坐标不好定位,所以我们采用的图形覆盖的方式。

void MainWindow::paintEvent(QPaintEvent *)
{QPainter painter(this);painter.setRenderHint(QPainter :: Antialiasing, true);/*****屁股*****/QPainterPath path;path.addRoundRect(QRect(200, 60, 150, 150), 1000);painter.setBrush(Qt::white);painter.setPen(Qt::black);painter.drawPath(path);/*****肚子*****/// 腿path = QPainterPath();path.moveTo(170, 180);path.lineTo(120, 260);path.moveTo(185, 180);path.lineTo(145, 280);path.moveTo(200, 180);path.lineTo(180, 290);path.moveTo(200, 180);path.lineTo(220, 290);path.moveTo(215, 180);path.lineTo(250, 280);path.moveTo(230, 180);path.lineTo(280, 260);painter.setBrush(Qt::NoBrush);painter.setPen(Qt::white);painter.drawPath(path);// 肚子path = QPainterPath();path.addRoundRect(QRect(150, 130, 100, 100), 1000);painter.setBrush(Qt::white);painter.setPen(Qt::black);painter.drawPath(path);/*****头*****/// 犄角path = QPainterPath();path.moveTo(80, 100);path.lineTo(60, 20);path.moveTo(140, 100);path.lineTo(160, 20);painter.setBrush(Qt::NoBrush);painter.setPen(Qt::white);painter.drawPath(path);path = QPainterPath();path.addRoundRect(QRect(50, 80, 120, 120), 1000);painter.setBrush(Qt::white);painter.setPen(Qt::black);painter.drawPath(path);// 左眼path = QPainterPath();path.addRoundRect(QRect(70, 120, 25, 25), 1000);painter.setBrush(Qt::black);painter.setPen(Qt::NoPen);painter.drawPath(path);path = QPainterPath();path.addRoundRect(QRect(75, 126, 10, 10), 1000);painter.setBrush(Qt::white);painter.setPen(Qt::NoPen);painter.drawPath(path);// 右眼path = QPainterPath();path.addRoundRect(QRect(120, 110, 25, 25), 1000);painter.setBrush(Qt::black);painter.setPen(Qt::NoPen);painter.drawPath(path);path = QPainterPath();path.addRoundRect(QRect(125, 118, 10, 10), 1000);painter.setBrush(Qt::white);painter.setPen(Qt::NoPen);painter.drawPath(path);// 嘴path = QPainterPath();path.moveTo(160, 108);path.arcTo(QRect(130, 48, 60, 60), 270, 100);painter.rotate(30);painter.setBrush(Qt::NoBrush);painter.setPen(Qt::black);painter.drawPath(path);
}

对于一般图形的绘制比较简单,因为常用、有规律,而且比较规则,像圆、椭圆、矩形、直线这些。如果存在各种复杂的图形那么用原生的绘制方案就很难实现了,需要消耗大量的时间来回折腾,所以这里就不再介绍了。

这篇关于Qt 之图形(简笔画-绘制卡通蚂蚁)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1008405

相关文章

Qt实现对Word网页的读取功能

《Qt实现对Word网页的读取功能》文章介绍了几种在Qt中实现Word文档(.docx/.doc)读写功能的方法,包括基于QAxObject的COM接口调用、DOCX模板替换及跨平台解决方案,重点讨论... 目录1. 核心实现方式2. 基于QAxObject的COM接口调用(Windows专用)2.1 环境

Python使用Matplotlib和Seaborn绘制常用图表的技巧

《Python使用Matplotlib和Seaborn绘制常用图表的技巧》Python作为数据科学领域的明星语言,拥有强大且丰富的可视化库,其中最著名的莫过于Matplotlib和Seaborn,本篇... 目录1. 引言:数据可视化的力量2. 前置知识与环境准备2.1. 必备知识2.2. 安装所需库2.3

SpringBoot实现图形验证码的示例代码

《SpringBoot实现图形验证码的示例代码》验证码的实现方式有很多,可以由前端实现,也可以由后端进行实现,也有很多的插件和工具包可以使用,在这里,我们使用Hutool提供的小工具实现,本文介绍Sp... 目录项目创建前端代码实现约定前后端交互接口需求分析接口定义Hutool工具实现服务器端代码引入依赖获

使用Python在PDF中绘制多种图形的操作示例

《使用Python在PDF中绘制多种图形的操作示例》在进行PDF自动化处理时,人们往往首先想到的是文本生成、图片嵌入或表格绘制等常规需求,然而在许多实际业务场景中,能够在PDF中灵活绘制图形同样至关重... 目录1. 环境准备2. 创建 PDF 文档与页面3. 在 PDF 中绘制不同类型的图形python

Qt实现删除布局与布局切换功能

《Qt实现删除布局与布局切换功能》在Qt应用开发中,动态管理布局是一个常见需求,比如根据用户操作动态删除某个布局,或在不同布局间进行切换,本文将详细介绍如何实现这些功能,并通过完整示例展示具体操作,需... 目录一、Qt动态删除布局1. 布局删除的注意事项2. 动态删除布局的实现步骤示例:删除vboxLay

Python绘制TSP、VRP问题求解结果图全过程

《Python绘制TSP、VRP问题求解结果图全过程》本文介绍用Python绘制TSP和VRP问题的静态与动态结果图,静态图展示路径,动态图通过matplotlib.animation模块实现动画效果... 目录一、静态图二、动态图总结【代码】python绘制TSP、VRP问题求解结果图(包含静态图与动态图

QT Creator配置Kit的实现示例

《QTCreator配置Kit的实现示例》本文主要介绍了使用Qt5.12.12与VS2022时,因MSVC编译器版本不匹配及WindowsSDK缺失导致配置错误的问题解决,感兴趣的可以了解一下... 目录0、背景:qt5.12.12+vs2022一、症状:二、原因:(可以跳过,直奔后面的解决方法)三、解决方

Qt中实现多线程导出数据功能的四种方式小结

《Qt中实现多线程导出数据功能的四种方式小结》在以往的项目开发中,在很多地方用到了多线程,本文将记录下在Qt开发中用到的多线程技术实现方法,以导出指定范围的数字到txt文件为例,展示多线程不同的实现方... 目录前言导出文件的示例工具类QThreadQObject的moveToThread方法实现多线程QC

Ubuntu 24.04启用root图形登录的操作流程

《Ubuntu24.04启用root图形登录的操作流程》Ubuntu默认禁用root账户的图形与SSH登录,这是为了安全,但在某些场景你可能需要直接用root登录GNOME桌面,本文以Ubuntu2... 目录一、前言二、准备工作三、设置 root 密码四、启用图形界面 root 登录1. 修改 GDM 配

Qt使用QSqlDatabase连接MySQL实现增删改查功能

《Qt使用QSqlDatabase连接MySQL实现增删改查功能》这篇文章主要为大家详细介绍了Qt如何使用QSqlDatabase连接MySQL实现增删改查功能,文中的示例代码讲解详细,感兴趣的小伙伴... 目录一、创建数据表二、连接mysql数据库三、封装成一个完整的轻量级 ORM 风格类3.1 表结构