• 締切済み

フライトシミュレートについて

全くの初心者ですが、大学でC++を使用したシミュレートを勉強しています。 研究内容が前年度からの引継ぎで資料にも不明な点が多いので、何点か質問させてください。 現在は飛行機のフライトシミュレートを作成中でシミュレート画面はプロジェクタに映しています。 現状だと地面に接触しても擦り抜けてしまっているので、衝突判定のプログラムを組み込みたいと思っています。 調べてみた結果、スタート時の座標をa、現在の座標をbとして以下のプログラムが使えるのではないかと思っています。 int Test(Point a, Point b, float r, Plane p) {   //aおよびbの両方に対して平面pからの距離を得る   float adist = Dot( a, p.n ) – p.d;   float bdist = Dot( b, p.n ) – p.d;   //平面の異なる側にある(距離が異符号)場合、交差している   if ( adist * bdist < 0.0f ) return 1;   //平面から半径の範囲内に現在地がある場合、交差している   if ( Abs ( adist ) <= r || Abs ( bdist ) <= r ) return 1;   //交差なし   return 0; } しかし、実際に判定し接触している場合は画面(プロジェクタ)に「衝突」などと表示したいのですが、 どのようにすればいいのでしょうか? 簡単なプログラム計算で実行画面に表示させたことしかないので苦戦しています。 長文でわかりにくいかと思いますが、宜しくお願いします。

みんなの回答

  • akoyagai
  • ベストアンサー率42% (3/7)
回答No.1

フライトシュミレートなど専門的なことはわかりませんが、 どのOS上で開発しているか、 どのグラフィックライブラリを使っているか、 などを提示していただければ 回答する人も増えると思いますよ。 私は残念ながら、Windows+DirectX/OpenGLしかやってないのでわからない確率が高いですが……

topopot
質問者

補足

確かに情報不足ですね、申し訳ありません。 開発環境ですが、 Windows XP VisualC++2005 Express Edition DirectX を使用しています。度々申し訳ありませんが、よろしくお願いします。

関連するQ&A