948 :
デフォルトの名無しさん:
板違いならすいません。
どうしてもわからないので質問したいのですが
DirectXで3Dのゲームを組んでるのですが、ある点からポリゴン面までの
最短距離をはかりたいのですが、数学的知識があまりなくうまくいきません
なんとか距離をはかる方法はないでしょうか?
ポリゴン面はとりあえず3点で構成されているただの一枚のポリゴンです。
>948
ある点=点P、ポリゴン面=僊BCとする
次の3通りの可能性がある
1.面上の何処かが一番近い
>面の法線ベクトルで点Pを通る直線がポリゴンと交わる時、交わる点が一番近い
2.3辺の線上の何処かが一番近い
>1を満たさず、各辺と点Pからなる三角形の内角が90度を越えない場合、点Pと該当する辺に垂直に交わる点が一番近い
3.3頂点の何処かが一番近い
>1と2を満たさない場合、3頂点のうち一番距離が近い頂点が一番近い
|(PA×PB)・PC| / |AC・BC|
とかのほうがかえって早いとかは?