热点新闻
构建toxiclibs的物理世界
2023-07-04 12:35  浏览:2729  搜索引擎搜索“手机低淘网”
温馨提示:信息一旦丢失不一定找得到,请务必收藏信息以备急用!本站所有信息均是注册会员发布如遇到侵权请联系文章中的联系方式或客服删除!
联系我时,请说明是在手机低淘网看到的信息,谢谢。
展会发布 展会网站大全 报名观展合作 软文发布

书名:代码本色:用编程模拟自然系统
作者: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()函数一样 }

发布人:3772****    IP:61.145.72.***     举报/删稿
展会推荐
让朕来说2句
评论
收藏
点赞
转发