我不确定这个地方是否适合我的问题,但我会试一试我猜这是在CS和物理之间的某个地方,但是因为我在C++中编程,所以我会在这里发布它。
我在看一个三维的粒子,它在(x,y)平面上被一个力弯曲,如图所示。力是从东北方向射入的黑体箭头。Y轴与力之间的夹角是“A”。
setup
粒子以速度矢量(v_x,v_y,v_z)从左侧进入,并在拐角处弯曲牛顿第二定律很好地描述了这一点,没有问题。这很容易用数值方法求解,例如用欧拉法到目前为止,我已经成功地实现了这一点。
然而,如图所示,粒子在一个直径为h的圆柱管中移动,我希望在某个时间t找到在x和z方向(从屏幕上指向)到壁的法向距离。通过“法向距离”我的意思是,如果坐标系与粒子一起旋转,那么我想知道沿Y和Z向管边缘的粒子(如3个指向管边缘的小箭头所示)。最终的目标是找出粒子是否撞到了墙。
对于Z方向,它是微不足道的,因为它的轴在轨道期间不改变。但是y方向给我带来了很大的问题这是我的问题:有没有办法让我在轨迹中沿y找到到管边缘的距离?注意,我是用数值计算的,所以我不需要解析表达式。
最好的,
尼尔斯。

最佳答案

你不会说管子的形状是什么,但一般来说:
如果管中的弯曲是圆形的,则计算粒子到管内外缘曲率中心(圆的中心)的距离。将此称为Dpi和Dpo(从粒子到曲率中心、内部和外部的距离)从圆的中心到管本身的距离是恒定的:圆的半径Ri和Ro然后,您可以通过Dpi-Ri和Dpo-Ro计算粒子与管道内外部的距离。
如果管中的弯曲不是圆形的,那么你必须发展一个函数来计算两个半径Ri和Ro,作为半径角的函数,因为这些值不再是常数一旦你有了这个函数,你就可以计算dpi(θ)和ri(θ)以及dpo(θ)和ro(θ),你的距离就是上述的差。

关于algorithm - 带时间的旋转坐标系,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12959763/

10-10 18:48