点から線までの距離を 2D で取得する非常に具体的な方法について詳しく知りたいです。方法は次のとおりです。
// Given an arbitrary point, and a normal vector
// to a line along with a scalar offset
distance = DotProduct(normal, point) - offset
Erin Catto が彼の Box2D Lite ソース コードでこのメソッドを使用しているため、これが真実であることはわかっています。このページでは、プログラマーが方程式について言及しています。
distance = (V dot normal) - offset
これは、そのような計算のために私が見つけることができる唯一のリソースです。ポイントとの半空間の交差を確認する通常の方法は、問題の平面からポイントへのベクトルを点で示し、記号 (+ または -) をチェックして、その平面の法線から離れているか、またはその平面に向いているかを確認することです。結果のスカラーの。
これは、平面 (またはこの場合は 2D ライン) 上の点を見つけるのにコストがかかるリアルタイム アプリケーションでは望ましくない場合があり、このラインの法線とオフセットしかありません。
要するに、この「オフセット」とは何で、どのように計算できるのでしょうか? このオフセットは何を表していますか? 私が現在自分の研究で知っていることから、それは 2D の直線の一般方程式からの c 変数であると推測されます。
ax + by + c = 0
追加情報: Erin Catto はいくつかの場所でこのようなオフセットを計算しています (Oriented Bounding Box の衝突検出のコンテキストで) が、ここでの計算や何が起こっているのかわかりません:
offsetScalar = Dot(BoxPositionVector, normalVector) + BoxYHalfWidthScalar;