0

I have 2 sections, each section contains of 2 Points and each point has X and Y. What is the best way to find the overlap between these 2 sections? (only on the X relevant here)

public class section
{
   double leftPoint;
   double rightPoint;
}
4

2 に答える 2

0

これを行う方法を示すコード例を次に示します。2 つのセクションが (a_from, a_to) と (b_from, b_to) であると仮定し、結果のセクションを (res_from, res_to) に設定します。また、これはあなたが望むもののように見えるので、x軸の間隔のみを交差させます。結果は 2 つの開始点の遅い方から始まり、2 つの終了点の早い方で終わるという考え方です。

Point a_from, a_to;
Point b_from, b_to;
Point res_from =  new Point();
Point res_to =  new Point();
res_from.SetX(Math.max(a_from.getX(), b_from.getX()));
res_to.SetX(Math.min(a_to.getX(), b_to.getX()));

res_to.x < res_from.x の場合 交差はまったくないことに注意してください。

また、ここでは a_from.x <= a_to.x および b_from.x <= b_to.x を想定していますが、これは常に正しいとは限りません。そうでない場合は、res_from.x を次のように計算する必要があります。Math.max(Math.min(a_from.getX(), a_to.getX()), Math.min(b_from.getX(), b_to.getX()))

于 2012-04-06T06:24:43.013 に答える