0

私は浮力を知っていて、それを適用します。私の船は今水に浮かんでいます。しかし、スピードボートを制御してナビゲートするために力を加える方法がわかりません。

私はhavok物理エンジンを使用しています。私のコードはこのようなものです

body->applyForce( stepInfo.m_deltaTime,forwardWorld, pointx );

pointx = 私の適用力ポイント (-75,0,0); このポイントは私の船の後ろ側の 3D ポイントです

forwardWorld = 力の値と方向 (100,0,0); 私の船の後ろ側に100Nmを適用します

私のpointx値は常に静的です。

私の forwardWorld 値は試験のたびに変わります:

船を前に出したいときは、(100,0,0) に設定します

船を右に向けたいときは (0,0,100) に設定します

船を左に向けたいときは (0,0,-100) に設定します

しかし、これは良い方法です。なぜなら、私の船は高速でドラッグして左または右にシフトするからです。これは間違いです。助けてください。

4

1 に答える 1

0

モデルが必要な理由を言いませんでした。それがゲームであれば、私のアドバイスはあなたを満足させるものではないかもしれませんが、ある種の工学的問題解決のためであれば、独自の操縦モデルを構築することをお勧めします. これは威圧的に聞こえるかもしれませんが、実際には 3 つの微分方程式 (ロール、ヨー、サージ。興味に応じてスウェイを追加することもできます) を解くことになります。たとえば、Range-Kutta 法を使用した積分によって簡単に解決できます。

これは、私が話していることの素晴らしい概要を示す論文です (オンラインにはたくさんあります): https://scl.snu.ac.kr/SCL_Research/data/research/science.pdf

運動方程式の係数を見つける必要があります。上にリストした論文にはいくつかありますが、Web ではさらに多くの情報を見つけることができます。まず、KRISO データを使用することをお勧めします。それらは広く利用可能であり、文献でもよく紹介されています。

編集: 私は MatLab が好きではありませんが、MatLab にアクセスできる場合は、Simulink モデルを構築することで、方程式を非常に簡単に解くことができます。

于 2013-01-22T19:03:05.920 に答える