问题标签 [softbody]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
1914 浏览

sprite-kit - 有没有办法使用 SKSpriteNode 和 PhysicsBody 参数使用 Spritekit 制作柔软的身体?

我有以下精灵落在屏幕底部:

有没有办法让它在碰到屏幕底部边框时它的两侧会鼓起?是像果冻一样的东西,还是在一定程度上仍保持其形状但在自身重量下凸出的柔软身体?我希望这是有道理的....

0 投票
0 回答
29 浏览

random - Drupal 7 - 在正文表中创建块随机线?

Drupal 7. 我有问题。我的客户想要一个节点。在正文中,他们创建了 1 个表。2 栏。1 col 粘贴引用和 1 col 粘贴作者

例如:

现在。他们希望我在刷新时创建一个块,在表上显示随机 3 行。

我不知道怎么办?

0 投票
1 回答
1763 浏览

c++ - C++中的软体引擎

我正在尝试使用 SDL2 在 C++ 中制作一个基本的软体引擎。它的工作原理是考虑软体的所有顶点由相同长度和刚度的弹簧互连(具有相同的弹簧常数k和长度natural_length)。为了让它更真实,我还引入了一个阻尼常数c
然而,我遇到了一个令人沮丧的问题。在过去的 6-7 个小时里,我一直在尝试调试它,但无济于事。柔软的身体遇到许多我看不懂的奇怪错误

  • 首先,“软体”一点也不“软”。每次都会变成一堆皱巴巴的分数。我已经尝试只计算相邻点的力,但它仍然变得一团糟。
  • 即使我没有施加任何外力,柔软的身体每次都会飞到顶角(原点)。

这两个错误都在这张图片中可见 - 漏洞

以下 2 个函数(它们与所有变量在同一个类中,因此不需要接受任何参数)是代码的实际模拟部分。(我省略了其余代码,因为它是不必要的。)
我使用 a vectorofSDL_Points来存储每个点,并使用 a vectorofVector来存储它们的速度。如果您想知道Vector是什么,它只是一个struct我创建的,只有 2 个float成员xy.
acceleratePoints()函数将速度和位置分配给每个点,checkCollision()并且...检查与具有宽度scr_w和高度的窗口墙壁的碰撞scr_h

magnitude()函数返回 a 的大小Vector。我用于图像
的恢复系数e、阻尼常数c和弹簧常数的值分别为 0.5、10 和 100。k感谢您抽出时间来阅读!帮助将不胜感激。

编辑

如果有人想测试它,这是整个代码。您将需要 SDL 和一个文件夹 'img',在 'img/point.bmp' 中有一个 '.bmp' 文件。

0 投票
3 回答
2815 浏览

javascript - WebGL/Three.js 中的软体?

有没有办法将软体物理与 WebGL 或threejs 集成?我可以以某种方式集成例如 PhysX 引擎吗?

我需要在 3d 柔体中移动 3d 刚体并让柔体响应变形。理想情况下,柔软的主体将具有与粘土相似的塑性特性。

我正在努力实现的目标是可能的吗?

任何建议或方向将不胜感激。

0 投票
1 回答
142 浏览

algorithm - 形状匹配软体动力学-实现公式

根据Müller 等人的这篇论文,我正在尝试实现软体物理。. 我的数学不是很差,但是在实现公式(7)时,我就是搞不懂语义。

它是这样的:

(请原谅我的 TeX)。这对我来说没有意义——向量乘积之和的乘积应该给出一个标量,但结果被视为矩阵。

在clojure (core.matrix)中直接实现公式给了我标量结果。

我尝试修改实现,将 N 向量 p 和 q 替换为 NxN 零矩阵,并将 p 和 q 作为相应的第一行/列。这给了我矩阵结果,但是结果转换使我的坐标错误地偏离了原始位置。

有人对这个算法有经验吗?

0 投票
3 回答
570 浏览

javascript - 如何使用 javascript 物理引擎创建类似于“寿司猫游戏”的 2D 物理 blob?

我正在尝试创建HTML5类似于 Sushi Cat 游戏的游戏。我按照Emanuele Feronato 的博客文章中的类似教程,然后想出了这个图像中的图片 A 的结构,其中允许灰色轨道相互穿透,而红线是远距离约束。

但问题是当水滴从高处坠落(或撞到角落)时,它会变成图 B 中的样子。

我尝试使用弹簧,不同的约束力,更小的轨道,但它们不能正常工作。

我的问题:

  1. 解决方案是什么?或者我在哪里可以在网上找到解决方案?

  2. 是否有任何其他具有特定功能的 js 物理引擎来执行此任务?

0 投票
2 回答
2289 浏览

c++ - 任意数量控制点的 B 样条

我目前正在使用数字弹簧物理学研究一个软体系统,我终于得到了这个工作。我的问题是目前一切都在直线上。

我的目标是复制类似于游戏“地板是果冻”的东西,除了光滑的角落和目前是直的和有角度的变形之外,一切都可以正常工作。

我曾尝试使用三次贝塞尔方程,但这仅意味着每 3 个节点我就有一条新曲线。是否有一个贝塞尔样条方程,它包含 n 个控制点,这些控制点将与 vec2 的循环一起使用(因此节点 [0] 是第一个和最后一个控制点)。

抱歉,我没有为此显示任何代码,但我完全被难住了,谷歌搜索什么也没有。

0 投票
0 回答
289 浏览

opengl - 使用质量弹簧方法的 UV 球的软体模拟不起作用?(Opengl C++)

我正在研究软体模拟。我正在尝试使用 C++ 中的 OpenGL 来实现。但是,我有一些问题,我在互联网上找不到任何东西。我正在使用质量弹簧方法。
首先,我在 2d 中进行了模拟,它没有问题地工作。有一个可用的代码。但是,当我直接将它应用到 3d 时,它没有,我找不到问题。是紫外线球吗?人们正在使用二十面体球体,我知道,但是,我无法弄清楚如何初始化弹簧。由于弹簧的方向很重要;当我在 2d 中更改方向时,它不起作用。或者它可能是紫外线球中弹簧的方向。另外,我怀疑力积累和欧拉积分器。这可能是正常的,但是,模拟在我施加压力的第一部分不起作用。所以可以肯定的是,我将法线更改为从原点到弹簧中点的向量,因为球最初位于原点但它再次失败。我已经有一段时间没有上物理课了。我把代码放在下面,我知道它效率不高且写得不好,但我有兴趣使模拟工作,但无论如何我感谢所有评论。无论如何,感谢您到目前为止的阅读。祝大家有个美好的一天。

质点初始化

弹簧初始化

球的体积

蓄力器

欧拉积分器

如果您有兴趣,请查看带有着色器的整个代码。

0 投票
1 回答
158 浏览

libgdx - 我在 Libgdx 中使用 Bullet Physics 来模拟软体,但软体不与重力发生反应,只是落在 -y 方向

我正在尝试在子弹的 softRigidworld 中模拟软体,但我在 libgdx 中这样做了,我已将软体添加到动态世界并将重力设置为 0,但作为布料的软体总是像重力一样下降 - 9.8 为什么会这样?有什么帮助吗?

这是图片: https ://drive.google.com/file/d/1-9Bnwz5wy_rkiIsvjD9wGzVw-7DY8SgB/view?usp=sharing

我试图在那个世界中添加一个刚体,那个物体对重力有反应,但对软体没有反应。

用它来设置世界和重力

使用此https://github.com/libgdx/libgdx/blob/master/tests/gdx-tests/src/com/badlogic/gdx/tests/bullet/SoftBodyTest.java 添加软体

并使用

0 投票
1 回答
33 浏览

libgdx - 在制作软体(球体)并在 libgdx 中平移时,很少有网格顶点粘在原点上?

我试图通过制作一个球体并从中取出所有网格部件并从该球体制作一个柔软的身体来制作一个柔软的身体。当我在 libgdx 中渲染它时,我使用了一个球体模型,以便软体可见,它随着软体的移动而转换,但很少有顶点粘在生成位置(原点)上,谁能建议我我做错了什么?

这是我的创建方法:

这是我的渲染方法

这是图像的样子: https ://drive.google.com/file/d/1-9UjdlyIAotZPgrLKaoG0Dm5UEVLdzY1/view?usp=sharing