重複の可能性:
2つの線分が交差する場所をどのように検出しますか?
2つの点a
とb
2つのベクトルが与えられ、次の方法で交点である3番目の点を見つけたいと思いv
ます。u
c
vector2 intersection(vector2 a, vector2 v, vector2 b, vector2 u)
{
float r, s;
a + r * v = b + s * u;
r * v - s * u = b - a
r * v.x - s * u.x = b.x - a.x
r * v.y - s * u.y = b.y - a.y
}
このシステムを解決するためにガウスの消去法を使用する以外の方法はありますか?それとも、これを処理するための最良の(または少なくとも許容できる)方法ですか?
編集:の定義vector2
typedef union vector2
{
float v[2];
struct { float x, y; };
} vector2;
a
また、点とベクトルの唯一の違いは、アフィン変換による変換方法にあるため、b
タイプも同じです。vector2