【问题标题】:Particle bouncing off spherical boundaries 3D粒子从球形边界反弹 3D
【发布时间】:2018-12-20 23:45:08
【问题描述】:

这很奇怪,但我找不到任何清晰的算法来在 3D 空间中反弹球面边界。

例如,我有一个在空心球体内具有任意速度的粒子。这个粒子没有任何形状/身体,只是一个点坐标。

当粒子撞击边缘时,更有可能必须找到一个平面(距球体原点的距离大于球体半径)并计算该平面的反射角。

但是,也许有另一种方法?

【问题讨论】:

  • 不,这是正确的方法,但是平面法线只是从粒子到中心的向量,所以超级简单。

标签: algorithm 3d bounce particles


【解决方案1】:

扩展我的评论:

P为粒子位置,V为粒子速度,令C为圆心。

然后:

  1. 计算切面法线:N = (C-P)/|C-P|
  2. 计算速度的法向分量:Vn = N·V
  3. 确保指向内:if (Vn

你可以重新排列来去掉平方根:

  1. N = C-P
  2. Vn = N·V
  3. 如果 (Vn

【讨论】:

  • 感谢您的回复,Vn
  • Vn 是一个标量 -- NV 的点积
  • 看看我有什么。粒子向相反的方向移动。在某些方面,这是可行的,但我需要更现实的反思。
  • 是的,如果您从中心开始,您会立即弹回中心。无论你从哪里开始,它都会留在同一个平面上。如果你想要一个有趣的模式,你就需要作弊。
  • 您的解决方案有效,但是如果我需要保持速度/速度,则在偏转时将此参数设置为零,因此我必须建立一个延长的轨迹以保持正确的速度
猜你喜欢
  • 2013-11-23
  • 2013-11-22
  • 1970-01-01
  • 2023-03-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多