2

以下に示すように、3つの点A、B、Cと長方形があります。Aからの光線が長方形と交差するx、y座標を知りたいのですが、BCからの線にも垂直でなければなりません。光線が交差するBC上のポイントを見つける方法は知っていますが、そこから延長して長方形をインターセプトするポイントを見つける方法がわからないようです。図:

ここに画像の説明を入力

BC切片を見つけるために使用しているコードは次のとおりです。

double k = ((By - Cy) * (Ax - Cx) - (Bx - Cx) * (Ay - Cy)) / ((By - Cy) * (By - Cy) + (Bx - Cx) * (Bx - Cx));
double Dx = Ax - k * (By - Cy);
double Dy = Ay + k * (Bx - Cx);

長方形をインターセプトするために Dx と Dy を拡張するにはどうすればよいですか?

4

1 に答える 1

0

最初に、2 つの直線の交点を見つける方法を理解します (平行の場合には注意してください)。

次に、交点または線がある場合は線との交点を見つける方法。

次に、光線と線分との交点を見つける方法(ある場合)。

それを A からの光線と 4 つの側面のそれぞれに適用すると、完了です。

ヒント: 線または光線をベクトルおよび点として表すことができます。このようにして、線 BC との交点 (B と C の間ではない可能性があります) を気にせずに、A からの光線を定義できます。

于 2012-07-25T14:16:32.260 に答える