ユーザーがこの三角形の内側の点の周りをドラッグできるiOS用の三角形のタッチサーフェスを作成しようとしています。このページの情報を使用すると、ドラッグしたポイントが三角形の内側にあるか外側にあるかを簡単に判断できます。ただし、ユーザーが三角形の外側をドラッグした場合、ポイントを三角形のエッジにクリップします。
ユーザーの指がこれらのエッジの外側をドラッグする場合は、ベクトルuまたはvをそれぞれゼロに設定する必要があるだけなので、これはサイドABおよびサイドACの場合は簡単です。ただし、BC側のポイントpを見つける方法がわかりません。ユーザーがエッジBCの外に指をドラッグした場合、この交点を見つける必要があります。
Dotproductを使用して、ベクトル(BC)上のベクトル(B(u + v))のスカラー投影を取り、それをBCの2乗の長さで除算します。
—
Martijn Courteaux 2012