了解しました。垂直ベクトルを計算せずに、2D三角形の点の距離を取得しようとしています。
float qd = Vector2f.dot(new Vector2f(pos.x, pos.z),
new Vector2f(normal.pos.x, normal.pos.z)) -
Vector2f.dot(new Vector2f(q.center.x, q.center.z),
new Vector2f(normal.pos.x, normal.pos.z));
それが私が使っているコードです。(注:3fベクトルを2dベクトルに変換しますが、それについて心配する必要はありません)。計算結果は0から1IE0.5か何かである必要があります。
私がまだ正しく説明していない場合、多分これは役立つでしょうか?
私の質問は、垂直ベクトルの距離を計算せずに、2次元三角形の点の距離を取得するにはどうすればよいですか?IE三角形が上向き(y = -1)で傾斜がない場合、Xがない三角形の距離が必要になります。
編集1:あなたが言っていることについて、バンサー、これは私がそれから得たものであり、それは機能しませんが、それはほぼ機能しているようです。
float d = (float) Math.sqrt( 0 /*cause the two x's should be the same */ + Math.pow(pos.z - q.max.z, 2));
float h = (float) Math.sqrt( 0 /*cause the two x's should be the same */ + Math.pow(q.min.z - q.max.z, 2));
float myDist = d/h;