0

これが私の質問の正しい場所かどうかはわかりませんが、試してみます。CS と物理学の間のどこかにあると思いますが、これを C++ でプログラミングしているので、ここに投稿します。

図に示すように、粒子に加えられた力によって (x, y) 平面で曲がっている 3D の粒子を見ています。力は北東から入る太い矢印です。y 軸と力の間の角度は "a" です。

設定

パーティクルは速度ベクトル (v_x、v_y、v_z) で左から入り、コーナーで曲がります。これは、ニュートンの第 2 法則によって適切かつ簡単に記述され、問題はありません。これは、オイラー法などによって数値的に簡単に解決できます。これは、これまでのところうまく実装できています。

ただし、図が示すように、粒子は一定の直径 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 の 2 つの半径を半径の ANGLE の関数として計算する関数を展開する必要があります。これは、これらの値が一定でなくなるためです。この関数を取得したら、Dpi(シータ) と Ri(シータ) と Dpo(シータ) と Ro(シータ) を計算すると、距離は上記のように差になります。

于 2012-10-19T00:18:54.003 に答える