说明:

虽然 5 月 20 号过了,还是来画下心。这里我使用 QML 的粒子系统来制作心形效果。

粒子模拟的核心是 ParticleSystem 控制共享时间线的。一个场景可以有多个粒子系统,每个粒子系统都有一个独立的时间轴。使用 Emitter 元素发射粒子,并使用使其可视化,元素 ParticlePainter 可以是图像,QML Item 或着色器 Item。发射器还使用矢量空间提供粒子的方向。发射的粒子不再可以由发射器操纵。粒子模块提供 Affector,可以在发射粒子后操纵粒子的参数。

QML 粒子系统的知识请参照 QMLBook 一书,或示例搜索 Particle 。

代码效果:

(为什么是绿色的?爱情长青!!!)

代码链接:

https://github.com/gongjianbo/MyTestCode/tree/master/Qml/TestQml_20200521_Love

主要代码:

(需要准备心形的图片,我这里用的图片来做 Particle 和 Mask)

//main.qml
import QtQuick 2.12
import QtQuick.Window 2.12
import QtQuick.Controls 2.12
import QtQuick.Layouts 1.12ApplicationWindow {visible: truewidth: 640height: 480title: qsTr("龚建波 1992")header: TabBar {id: barwidth: parent.widthTabButton { text: qsTr("Hollow") }TabButton { text: qsTr("Solid") }TabButton { text: qsTr("Circle") }}StackLayout {width: parent.widthcurrentIndex: bar.currentIndexanchors.fill: parentHollowHeart{ }SolidHeart{ }CircleHeart{ }}
}
//CircleHeart.qml
import QtQuick 2.12
import QtQuick.Particles 2.12Item {id: controlParticleSystem {id: syswidth: 300height: 300anchors.centerIn: parentImageParticle {anchors.fill: parentsystem: syssource: "qrc:/heart_1.png"color: Qt.rgba(0,0.5,0,0.8)//colorVariation: 0.5 //彩色效果}Emitter {id: emitter//anchors.fill: parentsystem: sysemitRate: 10  //发射速率lifeSpan: 5000 //生存周期mssize: 25 //尺寸sizeVariation: 5// 移动效果velocityFromMovement: 8velocity: PointDirection {xVariation: 2; yVariation: 2;}acceleration: PointDirection {xVariation: 10; yVariation: 10;}x:circle.cxy:circle.cy}Rectangle{//测试范围用的矩形z: -1anchors.fill: parentborder.color: "green"color: "transparent"}}Item {id: circleproperty real radius: 100property real cx: radius * Math.sin(percent*2*Math.PI)+sys.width/2property real cy: radius * Math.cos(percent*2*Math.PI)+sys.height/2property real percent: 0SequentialAnimation on percent {loops: Animation.Infiniterunning: trueNumberAnimation { from: 0.0; to: 1 ; duration: 5000;  }}}
}
//HollowHeart.qml
import QtQuick 2.12
import QtQuick.Particles 2.12Item {id: controlParticleSystem {id: syswidth: 300height: 300anchors.centerIn: parentImageParticle {anchors.fill: parentsystem: syssource: "qrc:/heart_1.png"color: Qt.rgba(0,0.5,0,0.8)//colorVariation: 0.5 //彩色效果}Emitter {id: emitteranchors.fill: parentsystem: sys//maximumEmitted: 500emitRate: 100  //发射速率lifeSpan: 2500 //生存周期mssize: 25 //尺寸endSize: 40  //最终尺寸sizeVariation: 5// 移动效果acceleration: AngleDirection{magnitude: 10angleVariation: 360}// mask只能用sourceshape: MaskShape {source: "qrc:/heart_2.png" //空心}}}
}
//SolidHeart.qml
import QtQuick 2.12
import QtQuick.Particles 2.12Item {id: controlParticleSystem {id: syswidth: 300height: 300anchors.centerIn: parentImageParticle {anchors.fill: parentsystem: syssource: "qrc:/heart_1.png"color: Qt.rgba(0,0.5,0,0.8)//colorVariation: 0.5 //彩色效果}Emitter {id: emitteranchors.fill: parentsystem: sys//maximumEmitted: 500emitRate: 100  //发射速率lifeSpan: 2500 //生存周期mssize: 25 //尺寸endSize: 50  //最终尺寸sizeVariation: 5// mask只能用sourceshape: MaskShape {source: "qrc:/heart_1.png" //实心}}}
}

QML粒子系统制作心形效果相关推荐

  1. ps基础学习:用路径工具制作心形效果

    路径工具的描边,可以制作各种效果,包括如下的心形效果. 1.画布的线性渐变效果制作 选择渐变工具,渐变模式选择线性渐变,渐变颜色设置由蓝色到浅蓝色,透明度由不透明到透明.设置完成后,按住鼠标左键自上而 ...

  2. 心跳(纯代码制作心形,animation动画)

    思路:利用两个长方形(比例是2:3 | 3:2)可以合成心形,然后利用动画,缩放大小实现心跳(纯代码),效果如下: <body><div></div> </b ...

  3. html怎么做3d心形背景,如何用PS制作心形背景图?

    PS怎么制造有层次感心型布景图?近期许多的运用ps的小伙伴想要制造一个美丽的布景图不知道怎么操作,小编今天就给大家带来一个颇具美感的心型布景图的制造办法.进入下载Adobe PhotoShop CS4 ...

  4. html+css制作心形

    学习过html和css之后我们可以尝试做一些小效果,比如说制作心形图案. 效果大概就像是这样 整体形状我们可以理解为一个正方形,在它的上边和右边分别创建一个圆形,最后再将整体旋转就可以做成一个爱心的效 ...

  5. html编码心形,CSS3心形效果代码

    利用css3实现了心形效果,并且还能够跳动. 代码实例如下: web前端开发学习q群:767273102 技术分享,欢迎基础小伙伴 #myheart { position: relative; wid ...

  6. unity粒子系统制作火的效果和碰撞触发入门

    最近使用到unity的粒子系统particle system,制作火的效果并用于交互.通过以下链接简单入门. 一.粒子系统制作火的效果 u3d游戏特效教程_基础教程_火把篝火特效制作:https:// ...

  7. python制作心形照片墙_这个七夕节,用Python为女友绘制一张爱心照片墙吧!

    欢迎添加华为云小助手微信(微信号:HWCloud002 或 HWCloud003),输入关键字"加群",加入华为云线上技术讨论群:输入关键字"最新活动",获取华 ...

  8. 5.8 使用轮廓化描边命令制作心形艺术图标 [Illustrator CC教程]

    原文:http://coolketang.com/staticDesign/5a97b8c39f54542163da6f43.html 1. 本节课将为您演示轮廓化命令的使用.首先选择文档中的心形图形 ...

  9. HTML+CSS实现心形效果

    html+css实现心形 一.正方形+圆形 二.矩形 一.正方形+圆形 效果: 代码: 解析: 设置一个正方向和两个圆形,圆形直径与正方形宽度相等(使用:before/:after) 将两个圆形分别向 ...

最新文章

  1. Redis学习笔记(八)——持久化
  2. 回文数的JAVA程序
  3. shell脚本中的括号和实例
  4. python数据类型有哪些、分别有什么用途_python中的数据类型有哪些
  5. 看脸 高效学英语 下
  6. 在 Mac 上的“照片”中如何把文件夹中的相簿分组?
  7. Redis为什么可以支持那么大的并发访问量?为什么redis没有单点并发瓶颈?
  8. duilib介绍-1
  9. 关于plsqldeveloper打开报错解决方法MSVCR71.dll is missing from your compute
  10. 1.HTTP协议|web框架
  11. HDU5713 K个联通块
  12. Ubuntu截图快捷键
  13. mysql 字段被截断_msyql存储数据时字段被截断
  14. 没想到,买了这款不靠谱的达尔文重疾险易核版,成了他一生的噩梦
  15. ubuntu 下载 wps 及 字体缺失问题
  16. c语言cfile用法,CFile和CArchive的使用
  17. M1芯片的Mac安装Centos !
  18. 开机自动启动 Ubuntu iBus 输入法
  19. NCS8803 高级缩放功能的低功耗HDMI到DisplayPort / eDP转换芯片
  20. js小数点有0的话就去掉,保留两位小数

热门文章

  1. 推荐系统[九]项目技术细节讲解z3:向量检索技术与ANN搜索算法[KD树、Annoy、LSH局部哈希、PQ乘积量化、IVFPQ倒排乘积量化、HNSW层级图搜索等],超级详细技术原理讲解
  2. 帮助中心 html页面,网页端直播
  3. catlike中后处理的膝盖函数来由
  4. 赫兹对应得rb_失败了! 您得到应得的!
  5. ubuntu18.04安装opencv with ffmpeg和java
  6. 电商扣减库存_拼团活动的库存问题
  7. 纳税人基本信息与服务器不符,答疑 | 申请退税后发现申报信息有误咋处理?
  8. 泉州群控服务器系统,泉州纵贯手机群控系统 实现一键式按钮服务
  9. R与RStudio安装与学习(一)
  10. html5收获,学习HTML5一周的收获4