Box2D 建模灵活的头发状物体

标签 box2d

我正在寻找在 Box2D 中对一些细而灵活的线/毛发/刺/线进行建模,并且想知道最好的方法是什么。我在 Google 上搜索并看到了一些称为线段 ( http://www.box2d.org/forum/viewtopic.php?f=8&t=1437 ) 的东西,但它似乎只是 Flash 端口的扩展 - 我希望以与平台无关的方式来实现它。

我猜我必须用一串薄盒子来做这件事,但是有人有任何建议或需要注意的事情吗?

更新:感谢下面的反馈,到目前为止的选项是:

  • 通过跟踪角度和设置电机速度来制作弹性旋转关节 - Box2D 论坛上有一个主题: http://www.box2d.org/forum/viewtopic.php?f=3&t=1007

  • 在各段之间连接弹性距离关节(见图 - 类似于人们接触软体的方式)。

    Distance joint example

  • 如果需要最少的碰撞,请使用 Drop Box 2D 并使用 verlet/粒子系统(不幸的是,对我来说不可能)。

最佳答案

这取决于它们需要成为物理世界的一部分,以及您想要与“头发”的所有部分碰撞的精确度。如果碰撞不是最重要的,您可以使用链中减少数量的盒子进行近似,并根据其位置的样条线进行渲染。如果涉及的碰撞很少,您甚至可以使用 verlet 集成,它非常容易编码并且对 CPU 的占用更小。

仅用其中的 10 个,我希望您可以使用旋转关节完全模拟它们,尽管我会控制它们,以便它们不断尝试拉直链条,但不是限制它们,而是调整每个关节的最大扭矩,以便它们不会'没有足够的力量完全伸直。如果采用这种方式,需要记住的一点是,它有助于使靠近底部的部分变重,并逐渐向末端变轻。尖端处的运动强度也需要减弱。

关于Box2D 建模灵活的头发状物体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6371100/

相关文章:

ios - 找不到 Cocos2D 文件?

java - Bx2D body Sprite 同步

java - 将主体移动到特定点 [Box2D 、 Libgdx]

java - OpenGL 的理想显示同步速率

java - LibGdx - Box2d - 跳跃

java - (Libgdx 和 Rube Box2d)合并世界

android - 如何找到图像的顶点(山)

java - LibGDX Box2d 将主体与对象相关联

objective-c - Box2D 动态体卡住(iPhone)

javascript - 在 BeginContact 事件中设置新的 body 位置