0

簡単にするために、左下隅が原点にあり、正方形の幅が1であると仮定します。

光線は正方形を 2 つの部分に分割します。交点の座標があります。p1からまでのベクトルの右側にある領域を取得したいp2:

光線は正方形を割る

現在if、2 点のすべての組み合わせをチェックし、それに応じて面積を計算する 16 のステートメントがあります。ひどいですね。これを行うより賢い方法はありますか?

4

2 に答える 2

1

p1とp2代わりにポイントABを呼び出します。慣例に従って、xは右に向かって増加し、yは上に向かって増加すると仮定します。

Aは、0または1の座標(xまたはy)を持っている必要があります。正方形(実際には2つの点のみ)を回転させてx=0にします。

Bはx=-1にある可能性があり、その場合、面積は1-(A y + B y)/2です。

または、Bはy = 0、面積= 1+(A y B x)/2にある可能性があります

または、Bはy = 1、面積=(A y -1)B x /2にある可能性があります

于 2013-03-24T03:32:11.763 に答える
0

このソリューションは、影付きの領域に示されているように、p1とp2が直角三角形を形成することを前提としています。

ベクトルの右側の面積=(w * w)-(0.5 * p1 * p2)ここで、wは正方形の幅、0 <= p1 <= w、0 <= p2<=wです。

たとえば、w = 1、p1 = 0.5、p2 = 0.75の場合、面積=(1 * 1)-(0.5 * 0.5 * 0.75)= 0.8125

于 2013-03-24T03:29:32.650 に答える