0

我不确定这是否是我的问题的正确位置,但我会试一试。我猜它介于 CS 和物理之间,但由于我是用 C++ 编程的,所以我会在这里发布。

我正在查看 3D 中的粒子,由于施加在其上的力,它正在 (x, y) 平面中弯曲,如图所示。力是从 NE 进入的粗体箭头。y 轴与力之间的角度为“a”。

设置

粒子以速度矢量 (v_x, v_y, v_z) 从左侧进入并在拐角处弯曲。牛顿第二定律很好地描述了这一点,没有问题。这很容易在数值上求解,例如通过欧拉方法。这我已经成功实施,到目前为止一切顺利。

然而,如图所示,粒子在恒定直径 h 的圆柱形管中移动,我希望在某个时间 t 找到 x 和 z 方向(指向屏幕外)到壁的法线距离。“正常距离”是指如果坐标系随粒子旋转,那么我想知道粒子沿 y 和 z 到管边缘的距离(如指向管边缘的 3 个小箭头所示) )。最终目标是以某种方式确定粒子是否撞到了墙上。

对于 z 方向,它是微不足道的,因为它的轴在轨迹期间不会改变。然而,y 方向给我带来了巨大的问题。这是我的问题:有没有办法让我找到在轨迹期间沿 y 到管边缘的距离?请注意,我是以数字方式执行此操作的,因此我不一定需要解析表达式。

最好的,奈尔斯。

4

1 回答 1

2

你没有说管子的形状是什么,但总的来说:

  1. 如果管中的弯曲是圆形的,则计算从粒子到管的内缘和外缘的曲率中心(圆心)的距离。将此称为 Dpi 和 Dpo(从粒子到曲率中心的距离,内部和外部)。从圆心到管本身的距离是恒定的:圆的半径,Ri 和 Ro。然后,您可以通过 Dpi - Ri 和 Dpo - Ro 计算粒子与管的内部和外部的距离。

  2. 如果管中的弯曲不是圆形的,那么您必须演化一个函数来计算两个半径 Ri 和 Ro,作为半径的 ANGLE 的函数,因为这些值将不再是恒定的。一旦你有了这个函数,你就可以计算 Dpi(theta) 和 Ri(theta) 和 Dpo(theta) 和 Ro(theta),你的距离就是上面的差异。

于 2012-10-19T00:18:54.003 回答