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;
}
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;
}
これを行う方法を示すコード例を次に示します。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()))