Qt 之图形(简笔画-绘制漂亮的西瓜)
简述
Summer is coming…我们呢,为大家准备了丰盛的佳果-西瓜,清爽解渴,甘味多汁。
一笔一划学简笔画,分分钟让你掌握一门新技能,下面我们来绘制一个“盛夏之王”-西瓜,赶快一起来试试吧。
| 版权声明:一去、二三里,未经博主允许不得转载。
简笔画
我们先简单看看西瓜的基本组成,一步步进行拆分、组合。
绘制
效果
具体的效果如下所示,我们可以再进行更好的完善。
源码
主要分为以下三部:
- 绘制外圆(绿色部分)
- 绘制内圆(红色部分)
- 绘制椭圆(西瓜子)
注意:绘制西瓜子的时候,由于西瓜子随机分布在西瓜中,所以我们使用了随机数来表示区域,并判断西瓜子是否在内圆中(西瓜子肯定要在西瓜内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);
}
Qt 之图形(简笔画-绘制漂亮的西瓜)相关推荐
- Qt之图形(简笔画-绘制漂亮的西瓜)
简述 Summer is coming-我们呢,为大家准备了丰盛的佳果-西瓜,清爽解渴,甘味多汁. 一笔一划学简笔画,分分钟让你掌握一门新技能,下面我们来绘制一个"盛夏之王"-西瓜 ...
- Qt之图形(简笔画-绘制卡通蚂蚁)
简述 关于简笔画的介绍很多,有动物.水果.蔬菜.交通工具等,通常会对绘制一步步进行拆分.组合.然后绘制为我们想要的结果. 下面来介绍另外的一个种类:昆虫类-卡通蚂蚁. 简述 绘制 效果 源码 绘制 效 ...
- Qt 之图形(简笔画-绘制卡通蚂蚁)
简述 关于简笔画的介绍很多,有动物.水果.蔬菜.交通工具等,通常会对绘制一步步进行拆分.组合.然后绘制为我们想要的结果. 下面来介绍另外的一个种类:昆虫类-卡通蚂蚁. | 版权声明:一去.二三里,未经 ...
- python简笔画绘制 数据驱动绘图恐龙_使用python turtle绘制简笔画大白-Go语言中文社区...
使用python turtle绘制简笔画大白 完整代码: import turtle as t pen = t.Turtle() # 定义画笔实例 pen.speed(0) pen.pensize(5 ...
- 用计算机画好看的图形,如何画一手漂亮的电脑效果图?技巧案例赏析!
原标题:如何画一手漂亮的电脑效果图?技巧&案例赏析! 电脑效果图是什么? 很显然,用电脑去绘制设计师的想法. 当然!所有的设计意图,最终都是为了更准确的成衣. 那么,能精准的表达出想法,我们的 ...
- python简笔画绘制 数据驱动绘图_pytorch visdom可视化工具学习—2—详细使用-2-plotting绘图...
3)plotting绘图 我们已经包装了几种常见的plot类型,以便轻松创建基本的可视化.这些可视化是由Plotly驱动的. Visdom支持下列API.由 Plotly 提供可视化支持. vis.s ...
- python简笔画绘制 数据驱动绘图_python:绘制枫叶简笔画
上面是枫叶的简笔图,我们怎么用python程序来完全模拟以上的图片呢?01今天为大家带来用python画枫叶的详细过程. 首先,我们保存上面的图片为"枫叶.jpg",放到pytho ...
- python简笔画绘制 数据驱动绘图恐龙_python:绘制枫叶简笔画
上面是枫叶的简笔图,我们怎么用python程序来完全模拟以上的图片呢?01今天为大家带来用python画枫叶的详细过程. 首先,我们保存上面的图片为"枫叶.jpg",放到pytho ...
- python简笔画绘制 数据驱动绘图恐龙_超萌超可爱的恐龙简笔画,简单几步就能学会哦!...
原标题:超萌超可爱的恐龙简笔画,简单几步就能学会哦! 今天,给大家分享一组男孩子最喜欢的恐龙简笔画.本次我画的是恐龙世界中的恶魔龙.关于恶魔龙的知识,大家自行去科普吧,我就不过多介绍啦!超萌超可爱的恶 ...
最新文章
- python 函数 默认参数
- 常用json框架介绍和Jackson返回结果处理
- Reactive Extensions 相见恨晚的Rx.Net
- Bootstrap 高亮某个菜单项
- oracle+st_geometry
- ASP.NET中Session的sessionState 4种mode模式
- PHP线程安全和非线程安全有什么区别
- Python socket.send()与socket.sendall()的区别
- 教你在SQL Server数据库中设计表和字段
- 拓端tecdat|R语言分段回归数据分析案例报告
- sql in语句优化_优化SQL语句的一般步骤
- idea各工作区背景颜色设置
- 14、CSS渲染:CSS是如何绘制颜色的?
- opencv warp(扭曲)球面投影的原理
- 共享黑名单是行业潜规则
- pubwin2009服务端 修改系统时间方法
- 抓包技术(浏览器APP小程序PC应用)
- Android做3D旋转动画,Android编程实现3D旋转效果实例
- sublimetext3解决中文乱码问题
- pdf怎么去除保护限制,pdf权限限制怎么解除?