美文网首页
构建toxiclibs的物理世界

构建toxiclibs的物理世界

作者: 大龙10 | 来源:发表于2022-06-15 06:10 被阅读0次

书名:代码本色:用编程模拟自然系统
作者:Daniel Shiffman
译者:周晗彬
ISBN:978-7-115-36947-5
目录

1、获取toxiclibs

  • 你可以从以下网站下载和安装toxiclibs:
http://toxiclibs.org/
  • 下载完成之后,你会发现toxiclibs有8个模块(也就是子目录),每个模块都有自己的作用。举个例子,在本章中我们只需要两个模块:verletphysics和toxiclibscore,但我还是建议你看看其他的模块。
  • 在Processing的库目录中安装好toxiclibs之后
(http://wiki.processing.org/w/How_to_Install_a_Contributed_Library),

你就可以开始学习下面的例子了。

2、VerletPhysics的核心元素

  • 我们花了很多时间学习Box2D中的核心元素:世界、物体、形状和关节。这让我们能更快理解toxiclibs,因为它的结构和Box2D类似。


3、toxiclibs中的向量

  • 还记得我们之前学过的PVector类么?再想想Box2D中用到的向量,我们不得不把PVector中的各种概念都映射到Vec2类中。在这里,我们还需要做一遍这样的事,toxiclibs有自己的向量类,它的Vec2D类用于表示二维向量,Vec3D类用于表示三维向量。

  • 让我们回顾PVector的基本数学运算,然后将它们映射成Vec2D的函数(方便起见,我们只考虑二维空间)


4、构建toxiclibs的物理世界

  • 为了在示例程序中构建一个toxiclibs物理世界,我们首先需要导入库。
import toxi.physics2d.*; 导入库
import toxi.physics2d.behaviors.*;
import toxi.geom.*;
  • 然后,我们需要用一个引用指向这个物理世界,也就是VerletPhysics或
    者VerletPhysics2D对象(这取决于我们在二维空间还是三维空间工作)。
VerletPhysics2D physics;
void setup() {
    physics = new VerletPhysics2D(); 创建toxiclibs Verlet物理世界
  • 有了这个VerletPhysics对象之后,你可以为它设置一些参数。如果你想创建一个物体无法穿过的边界,可以这么做:
    physics.setWorldBounds(new Rect(0,0,width,height));
  • 除此之外,你还可以用GravityBehavior对象为这个物理世界添加重力。创建GravityBehavior对象时需要传入一个向量,这个向量用于表示重力的大小和方向。
    physics.addBehavior(new GravityBehavior(new Vec2D(0,0.5)));
}
  • 最后,为了让物理库进行运算并能移动内部的物体,我们还要调用update()函数。 由于每一帧都要执行一次运算,因此我们在draw()函数中调用它。
void draw() {
    physics.update(); 该函数和Box2D的step()函数一样
}

相关文章

  • 构建toxiclibs的物理世界

    书名:代码本色:用编程模拟自然系统作者:Daniel Shiffman译者:周晗彬ISBN:978-7-115-3...

  • toxiclibs的Verlet Physics物理库

    书名:代码本色:用编程模拟自然系统作者:Daniel Shiffman译者:周晗彬ISBN:978-7-115-3...

  • 数字孪生

    概述 数字孪生是指针对物理世界中的设备,通过数字化的手段来构建一个数字世界中一模一样的的实体,藉此来实现对物理实体...

  • 关店,绝不是传统零售业的唯一出路

    摘要:我们正处在科技大爆发的时代,随着技术的快速发展,我们具备了构建物理世界与Cyber世界之间无缝链接的能力,A...

  • 随笔

    数字世界,为什么说分享是数字世界的方向?因为数字世界是由所有人的分享构建起来的。我们没有那么关心物理世界的数字化,...

  • 拓扑斯

    构建物理的新角度,这一篇文章是在十分抽象的层面上对物理理论构建的讨论。 物理量是泛函,输入一个状态,输出一个量值,...

  • 企业数字化转型概览

    问题1:数字化转型的定义 根据数字化时代的特征,以数字化技术为基础,构建和物理世界对应的数字世界;并以数据为核心,...

  • 打飞机04-碰撞的实现

    物理世界和物理体 1.设置碰撞代理和物理世界2.设置精灵的物理体 一、物理世界 第一步要先添加协议 设置物理世界 ...

  • 心理可以扭曲现实

    前面已经讨论了我们每个人,都拥有两个世界,一个是外面不完美的物理世界,而另一个是我们自己构建...

  • 如何在容器中执行Docker命令?

    背景 最近在开发一个功能,需要支持TensorFlow训练Docker镜像的构建。最初构建服务是部署在物理机上的,...

网友评论

      本文标题:构建toxiclibs的物理世界

      本文链接:https://www.haomeiwen.com/subject/ifosmrtx.html