简笔画

我们先简单看看西瓜的基本组成,一步步进行拆分、组合。

绘制

效果

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

源码

主要分为以下三部:

  • 绘制外圆(绿色部分)
  • 绘制内圆(红色部分)
  • 绘制椭圆(西瓜子)

注意:绘制西瓜子的时候,由于西瓜子随机分布在西瓜中,所以我们使用了随机数来表示区域,并判断西瓜子是否在内圆中(西瓜子肯定要在西瓜内O__O”…)。

void MainWindow::paintEvent(QPaintEvent *)
{QPainter painter(this);painter.setRenderHint(QPainter::Antialiasing, true);QPainterPath path;// 起始点(矩形左上角坐标)QPoint startPoint(50, 10);// 外部矩形宽度的1/2(外部圆半径)int nOuterRadius = 150;// 内部矩形宽度的1/2(内部圆半径)int nInnerRadius = 150;int nInnerHeightRadius = 120;// 间距int nSpacing = nOuterRadius - nInnerHeightRadius;QPointF rightPoint(startPoint.x() + nOuterRadius * 2, startPoint.y() + nOuterRadius);QRect outerRect(startPoint.x(), startPoint.y(), nOuterRadius * 2, nOuterRadius * 2);QPointF leftPoint(startPoint.x(), startPoint.y() + nInnerHeightRadius + nSpacing);QRect innerRect(startPoint.x(), startPoint.y() + nSpacing, nInnerRadius * 2, nInnerHeightRadius * 2);// 1.绘制外圆(绿色部分)path.moveTo(rightPoint);path.arcTo(outerRect, 180, 180);path.closeSubpath();painter.setPen(Qt::black);painter.setBrush(QColor(5, 150, 60));painter.drawPath(path);path = QPainterPath();// 2.绘制内圆(红色部分)path.moveTo(leftPoint);path.arcTo(innerRect, 180, 180);path.closeSubpath();painter.setPen(Qt::black);painter.setBrush(Qt::red);painter.drawPath(path);// 3.生成椭圆(西瓜子)QPainterPath seedsPath = QPainterPath();qsrand(QTime(0, 0, 0).secsTo(QTime::currentTime()));// 用来判断椭圆范围for (int i = innerRect.left(); i < innerRect.left() + innerRect.width(); i += 30){for(int j = innerRect.top() + nInnerHeightRadius; j < innerRect.top() + nInnerHeightRadius * 2; j += 20){// 随机数(西瓜子随机分布在西瓜中)int nX = qrand() % 30;int nY = qrand() % 30;// 当椭圆在内部路径内时,添加至绘制路径(西瓜子肯定要在西瓜内O__O"…)QRect rect(i + nX, j + nY, 6, 10);if (path.contains(rect))seedsPath.addEllipse(rect);}}painter.setPen(Qt::NoPen);painter.setBrush(Qt::black);painter.drawPath(seedsPath);
}

32 Qt 之绘图之绘制一个漂亮的西瓜相关推荐

  1. allow control allow origin_Origin绘图笔记(一)——如何高效绘制一个漂亮的数据图...

    软件版本:2018(2019及以上版本功能改进较大,虽然增加了一些功能,但很多操作化简为繁,不建议使用) 步骤1:管理好工作表 想要绘制一个漂亮的数据图,我认为理解工作表Sheet是很有用的,而这也是 ...

  2. Qt OpenGL(二十八)——Qt OpenGL 核心模式-绘制一个正方体(正六面体)

    Qt OpenGL(二十七)--Qt OpenGL 核心模式-绘制一个正方体(正六面体) 截止到上一篇文章,一川想使用Qt封装的类绘制一个旋转的彩色三角形的目标就实现了. 上一篇在介绍了使用变换矩阵的 ...

  3. 绘制一个漂亮的弧形 View

    绘制一个漂亮的弧形 View 来,先看下效果图: 怎么样?漂亮吧,上面是一个标题栏,下面是一个弧形的 View,标题栏和弧形 View 从左到右都有一个线性的渐变色,类似于手机 QQ 顶部的渐变效果, ...

  4. 3ds Max绘制一个漂亮的青花瓷碗3D模型

    这篇教程向小伙伴门介绍使用3ds Max绘制一个漂亮的青花瓷碗3D模型方法,教程很不错,很适合大家学习,推荐过来,一起来学习吧! 车削,材质贴图的应用,添加位图,渲染视图 步骤如下: 在桌面找到3DM ...

  5. 33 Qt 之绘图之绘制卡通蚂蚁

    绘制 具体的效果如下所示,我们可以再进行更好的完善. 源码 主要分为以下三部: 绘制屁股 绘制肚子 绘制头部 注意:绘制的时候,由于各个部分的颜色不同,而且坐标不好定位,所以我们采用的图形覆盖的方式. ...

  6. java graphics画圆_在Java中绘制一个漂亮的圆圈

    我正在使用 Java Graphics而且我一直在变得"丑陋". 这是我的Java程序所做的 这是在Matlab中做的同样的事情 我认为Java显然不像Matlab那样" ...

  7. Qt之图形(简笔画-绘制漂亮的西瓜)

    简述 Summer is coming-我们呢,为大家准备了丰盛的佳果-西瓜,清爽解渴,甘味多汁. 一笔一划学简笔画,分分钟让你掌握一门新技能,下面我们来绘制一个"盛夏之王"-西瓜 ...

  8. Qt 之图形(简笔画-绘制漂亮的西瓜)

    简述 Summer is coming-我们呢,为大家准备了丰盛的佳果-西瓜,清爽解渴,甘味多汁. 一笔一划学简笔画,分分钟让你掌握一门新技能,下面我们来绘制一个"盛夏之王"-西瓜 ...

  9. 【Qt】2D绘图之绘制图像(二)

    00. 目录 文章目录 00. 目录 01. 概述 02. 开发环境 03. 绘制QImage图像 04. 绘制QPixmap图像 05. 绘制QPicture图像 06. 综合对比 07. 附录 0 ...

最新文章

  1. 一: 建立Vue sampleproject
  2. 无限容量数据库架构设计
  3. jquery json学习
  4. Eclipse --Type /com.xx.app/gen already exists but is not a source folde解决方案
  5. 如何获取JavaCard剩余空间
  6. GitHub标星近10万:只需5秒音源就能实时“克隆”你的声音!
  7. Codeforces Round #513 总结
  8. 兼容firstChild和firstElementChild
  9. 游戏开发之测试篇3(C++)
  10. javascript的dom选择器
  11. Angr安装与使用之使用篇(六)
  12. 微信群发机器人源代码
  13. Win11设置定时关机命令没反应怎么办?
  14. landset8各波段_landsat8卫星全面
  15. HCDA学习笔记(二)
  16. 1688商品详情(商品主图、sku)
  17. opencv图像全景拼接
  18. 理解async与await
  19. 禁用微信浏览器字体调整的方法
  20. Android自定义控件之圆形头像

热门文章

  1. Pycharm 恢复到默认设置
  2. element-ui el-date-picker日期选择器 value-format问题
  3. 电脑显示黑屏但是鼠标能动怎么处理?
  4. mac os 录屏快捷键_录屏软件哪个好?赶紧收藏录屏好用方法
  5. [BZOJ 1135][POI2009]Lyz
  6. 软件测试用例的实际结果,软件测试结果归纳与分析
  7. 统计年鉴 excel
  8. opencv学习日记——娜扎小姐姐与猫咪的图像融合,超美哈哈哈
  9. 第一次带美瞳,突然发现眼睛大了10倍!
  10. ubuntu 18.04下greenplum安装笔记(二)安装Greenplum的失败的尝试