プロが教える店舗&オフィスのセキュリティ対策術

障害物を回避するプログラムを作りたいのですが・・
座標変換を使うのでしょうか?
障害物から力を出すことで回避できるということなのですが、どうやって障害物から力を出すのか?!
勉強し始めたばかりなので、
よくわかりません。
どなたかアドバイスお願いします。

A 回答 (2件)

OpenGLは画面を作るだけです。


指定された位置に指定された物体を指定された色でおいて指定された光源で照らし指定された位置から見た画像を作成するだけです。

そのために必要な指定を行うデータは別に作成して与える必要があります。
まず、人型を表示したければ、人の形をした物体のデータを作りそれを指定します。
表示のためにはその物体の位置と、視点の位置などを指定します。
動かすには、時間の経過に応じて物体の位置をなんらかの方法で計算して求めて指定しないと動いてはくれません。
アニメーションのためには、例えば1/60秒単位で位置を計算してその都度その計算結果で画像を表示させるように指定します。

人型は難しいと思いますので、まずはもっと単純な型から始めたほうがいいと思いますよ。
最初は、球を動かすぐらいがいいんじゃないでしょうか。

読んだわけではありませんが、参考になるかなと思った本です。
物理・制御シミュレーション入門―OpenGLを使ったアニメーションプログラミングの基本から応用まで
http://www.amazon.co.jp/exec/obidos/ASIN/4789836 …

参考URL:http://www.amazon.co.jp/exec/obidos/ASIN/4789836 …
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。

本もご紹介いただき、ありがとうございます。
週末にでも本を探しに行こうと思っています。

とても参考になりました。
簡単なタイプから初めて
最終的には理想に近づけるように頑張ります。

ありがとうございました。

お礼日時:2004/12/03 11:55

OpenGLそのものは3D画像描画のためのライブラリなので、障害物判定とは全く関係ありません。



どういうプログラムを作りたいのかはこの文面だけではよくわかりませんが。

例えば、障害物から回避動作を行いたい物体に対して、力のベクトルが発生していると考えて、
その動いている物体の運動ベクトルに加算して位置計算すれば回避運動ができるなとか思いますが。
実際には力など出ませんが、そういう力が発生していると仮定して計算すれば、回避行動をしているような動きになるということだと思います。
計算上は反重力が発生しているイメージですね。
仮定する力が弱ければ衝突の可能性がありますが、
力を強くするとか、距離に応じて力を増やす(例えば距離理の3乗に反比例)とかで対応することになると思います。

座標変換そのものはこの場合は不要と思います。
    • good
    • 0
この回答へのお礼

早速のご回答ありがとうございます。

どうしたら良いのかなんとなく分かったのですが、
勉強を始めたばかりなので、どうすれば
力のベクトルや位置計算の
プログラムを作れるのか分かりません。
申し訳ありませんが、もし何か参考書やサイトを
ご存知でしたら教えていただきたいです。

人型が障害物を避けて歩く動作をシミュレーションしたいのです。
OpenGLではないのでしょうか?

勉強不足で本当に申し訳ありませんが、
何卒宜しくお願い申し上げます。

お礼日時:2004/11/30 14:58

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!