了解しました。この画像の内容を実現しようとしています。
これは重心座標系になると思いますが、Xは常に1に等しいのでしょうか。基本的に、三角形の最高点に近づいたり遠ざかったりするときにのみ増減する必要があります。これは私がこれまでに入手したコードです(JavaでLWJGLライブラリを使用していることに注意してください)。
public float getDist( Vector3f p, Vector3f a, Vector3f b, Vector3f c )
{
Vector3f v0 = new Vector3f(0,0,0);
Vector3f.sub( c, a, v0 );
Vector3f v1 = new Vector3f(0,0,0);
Vector3f.sub( b, a, v1);
Vector3f v2 = new Vector3f(0,0,0);
Vector3f.sub( p, a, v2 );
float dot00 = Vector3f.dot(v0, v0);
float dot01 = Vector3f.dot(v0, v1);
float dot02 = Vector3f.dot(v0, v2);
float dot11 = Vector3f.dot(v1, v1);
float dot12 = Vector3f.dot(v1, v2);
float inverse = 1.0f / (dot00 * dot11 - dot01 * dot01);
float u = (dot11 * dot02 - dot01 * dot12) * inverse;
float v = (dot00 * dot12 - dot01 * dot02) * inverse;
if((u >= 0) && (v >= 0) && (u + v <= 1)) return (float) (Math.sin(u) * Math.cos(v));
else return 0;
}
編集:私が求めているのは次のとおりです:三角形の内側の点が、三角形の空間内の最も低い点から移動した距離を取得する方法はありますか?1は三角形の最も高い点です(ほとんどの場合、遠くにあります)。最下位から)それがベクトルを逸脱することを考慮せずに?IEは、画像上の2つの赤い点が、上部のxとの距離が異なっていても、同じ座標を持っていることに気づきましたか?
Edit2: