准备

  IDE:VisualStudio 2017

  Language:VB.NET / TypeScript

  图形API:Win2D

  Github:[ UWP ] [ TypeScript ]

  本文将向你介绍一种粒子系统(Particle System)模拟植物的简单方法。

第一节 移动

  粒子按照某种规则移动,且始终保留移动轨迹。

  定向移动

  粒子具有一个初始速度

  粒子渐变

  粒子的渲染半径逐渐减小,渲染颜色逐渐变浅

  方向偏移

  粒子始终朝着某个方向偏移

  随机扰动

  粒子在任意方向上随机受力

图1-1 定向移动

图1-2 渐变

图1-3 转向

图1-4 扰动

第二节 分裂

  已经存在的粒子随机分裂为若干个新的粒子。

  方向偏移

  分裂时新粒子速度方向偏转,移动轨迹将产生分叉

  粒子减速

  分裂时新粒子移动速度减小,移动轨迹会越来越短

图2-1 分叉

图2-2 减速

第三节 迭代

  现在,你可以自由调节参数然后迭代啦!

  迭代深度

  尽可能大的迭代深度

  颜色渐变

  生长和分裂时渐变颜色

  粒子贴图

  粒子颜色对应贴图指定位置的像素点

图3-1 茂密

图3-2 珊瑚

图3-3 地卜师

附录

  Github:[ UWP ] [ JavaScript ]

  编程模拟自然(一):如何画一颗静态树

  编程模拟自然(三):更好的静态树算法

  编程模拟自然(六):如何画一颗动态树

转载于:https://www.cnblogs.com/experdot/p/6878796.html

粒子系统(一):从零开始画一颗树相关推荐

  1. python实现画一颗树和一片森林

    python实现画一颗树和一片森林 实现效果 代码在这里 from turtle import Turtledef tree(plist, l, a, f):""":pa ...

  2. 用python绘制树和森林_python实现画一颗树和一片森林

    本文实例为大家分享了python画一颗树和一片森林的具体代码,供大家参考,具体内容如下 实现效果 代码在这里 from turtle import Turtle def tree(plist, l, ...

  3. 用python画树林_python实现画一颗树和一片森林

    本文实例为大家分享了python画一颗树和一片森林的具体代码,供大家参考,具体内容如下 实现效果 代码在这里 from turtle import Turtle def tree(plist, l, ...

  4. 用canvas画一颗树顶有雪的松树

    今下午没事,于是练习画了一颗松树,我的方法比较简单粗暴,不知道有没有更优雅的画法,等我找到了再贴上来.先看效果图: 代码如下: 画一颗松树 var c = document.getElementByI ...

  5. java代码怎么打印松树_用JAVA画一颗树(Applet)

    1.松树: import java.awt.*; import java.applet.*; public class Tree extends Applet { public void paint( ...

  6. java 画树_用JAVA画一颗树(Applet)

    1.松树: import java.awt.*; import java.applet.*; public class Tree extends Applet { public void paint( ...

  7. 用Python的turtle库画一颗简单的树(双层递归的思想)

    用Python的turtle库画一颗简单的树(双层递归的思想) 这段时间比较闲,在CSDN上随便逛逛,看到有些用Python来绘图的程序,很有意思.于是作为Python小白的我,也自己动手尝试了一下, ...

  8. python turtle 画动漫人物_python之turtle使用:画一颗美美哒的树

    以上就是小生牺牲午休时间捣鼓出来的~虽然不是辣么好看,但是还是想跟大伙分享一下,进入正题. 代码主要分为两部分:树代码部分,地上花瓣部分 树代码部分 其实代码很简单,主要是我们得知道如何去实现那些关键 ...

  9. python用turtle画月亮_python之turtle使用:画一颗美美哒的树

    以上就是小生牺牲午休时间捣鼓出来的~虽然不是辣么好看,但是还是想跟大伙分享一下,进入正题. 代码主要分为两部分:树代码部分,地上花瓣部分 树代码部分 其实代码很简单,主要是我们得知道如何去实现那些关键 ...

最新文章

  1. Java多线程复习:3(在操作系统中查看和杀死进程线程)
  2. VC++中的通知消息
  3. CCS V5 创建工程和配置软件仿真
  4. python_Django之模板模型
  5. VS2008显示代码行号
  6. Spring的@Scope的几种取值
  7. 静态存储区、堆和栈的区别
  8. Hi3515的开发板 Hi3515 SDK编译出错 提示缺少libpciv.a的解决办法
  9. 空间留言软件_电脑硬盘空间提示不足,原来还可以这么做,真是学到老活到老...
  10. HTML5在手机端实现视频全屏展示
  11. 600岁故宫插上科技翅膀 技术与营销的「双刃剑」?
  12. python对于设计师有什么用-好的IT产品设计师要做到哪些事
  13. javatodo框架中怎么配置路由
  14. 解决2种jni加载错误
  15. fanuc机器人试题_E01OF工业机器人FANUC系统维护试题库.docx
  16. python爬虫论文总结与展望怎么写_论文总结与展望怎么写
  17. 逍遥安卓模拟器卡android,逍遥安卓模拟器怎么设置不卡 逍遥模拟器不流畅解决方法...
  18. 【MySQL基础】04:DQL数据查询语言
  19. python注释多行
  20. SpringCloud_Dubbo_JZZ_MBY

热门文章

  1. ctr z撤回反向_matplotlib 3D图上的反向Z轴
  2. Java中局部变量必须初始化
  3. 学习笔记~~~~~Set接口实现
  4. 设备的分配与调度简单方案_连铸生产调度与动态重调度的优化与研究-3,炼钢技术(3)原创...
  5. 收集10个顶级的CSS3代码生成器
  6. NetFramework各个版本的特性笔记
  7. 进程间的通信IPC(无名管道和命名管道)
  8. 诸暨机器人餐厅价格_现场 | 一家尝出“锅气”的餐厅 探店机器人餐厅
  9. Oracle取最大/最小值函数
  10. 系统设计原则的重要性_设计原则的重要性及其对好的设计的影响