张春成
V2
2021/08/10阅读:112主题:默认主题
三维场景的受力模拟
三维场景的受力模拟
本文还是基于THREE.js
的三维场景呈现。 但缝合了D3
的力模拟功能。
受到力约束的点
当三维场景中的点受到彼此之间的力约束,就会产生类似晶体的晶格的形状

图中红点代表理想质点,黄线代表彼此之间的力连接关系。
我们可以使用 D3的力模拟工具[1] 对它们的位置和运动速度进行实时更新, 于是有如下的运动效果
(这是一段棒到不行的力模拟视频)
可以看到,随着受力关系的变化,这些点会稳定在不同的位置。
技术缝合
这仍然是一个缝合怪,但比上一个工程更好的地方是它使用的两个工具同属Javascript
应用。 至少不需要涉及Python
的后台计算了。
本工程的代码同样可见我的GITHUB仓库[2]。
参考资料
D3的力模拟工具: https://unpkg.com/d3-force-3d
[2]GITHUB仓库: https://github.com/listenzcc/ThreeJS
作者介绍
张春成
V2