书名:代码本色:用编程模拟自然系统
作者:Daniel Shiffman
译者:周晗彬
ISBN:978-7-115-36947-5
第4章目录
4.1 为什么需要粒子系统
粒子系统就是一系列独立对象的集合,这些对象通常用简单的图形或者点来表示。
1、为什么要学习粒子系统呢?
- 毫无疑问,粒子系统可以用于模拟各种自然现象(比如爆炸)。
- 实际上,它的作用不局限于此。
如果我们要用代码对自然界的各种事物建模,要接触的系统肯定并不是由单个物体组成的,系统内部会有很多物体,而粒子系统非常适合对复数系统进行建模。 - 比如一堆弹球的弹跳运动、鸟群的繁殖,以及生态系统的演化,这些研究对象都是由复数组成的系统。
2、一种更强大的方式表示对象
涉及对一组对象的处理。
- 在前面向量和力的示例程序中,我们简单地用数组表示一组对象,
- 但从本章开始,我们要用一种更强大的方式表示它们。
更强大的方式
- 首先,列表中物体的数量应该是可变的:
可能没有物体,可能只有1个物体,也可能有10个物体或成千上万的物体。 - 其次,除了定义粒子类,我们还会定义一个类表示粒子的集合——也就是粒子系统(ParticleSystem)类,
- 在实现过程中,我们会更深入地使用面向对象方法。
3、主程序框架
ParticleSystem ps; 这样的主程序是不是显得非常简洁优雅?
void setup() {
size(200,200);
ps = new ParticleSystem();
}
void draw() {
background(255);
ps.run();
}
4、涉及的各种编程技术
本章涉及的各种编程技术都非常有用,包括:
- 如何用Processing实现多个类,
- 如何实现对象的容器类。
- 最后,在粒子系统的研究过程中,我们将会接触两种面向对象编程的关键技术:继承和多态。
还要特别指出:粒子系统有多种实现方式,本章的内容就是学习这些实现方式。