2つのセクションがあり、各セクションには2つのポイントが含まれ、各ポイントにはXとYがあります。 これらの2つのセクションのオーバーラップを見つける最良の方法は? (ここに関連するXのみ)2つのセクションのオーバーラップを見つけるためのAlogritm
public class section
{
double leftPoint;
double rightPoint;
}
2つのセクションがあり、各セクションには2つのポイントが含まれ、各ポイントにはXとYがあります。 これらの2つのセクションのオーバーラップを見つける最良の方法は? (ここに関連するXのみ)2つのセクションのオーバーラップを見つけるためのAlogritm
public class section
{
double leftPoint;
double rightPoint;
}
ここでは、その方法を示すコード例を示します。私は2つのセクションが(a_from、a_to)と(b_from、b_to)であると仮定し、結果のセクションを(res_from、res_to)に設定します。また、私はあなたが望むものと思われるので、x軸上の区間だけを交差させます。考え方は、結果は2つの開始の後半から開始し、2つの終了の早い方で終了するということです。 res_to.x < res_from.x場合は全く交差がありませんことを
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()));
注意。
また、ここでは、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()))
各セクションには2ポイントがあり、各ポーイングにはgetX()、getY() –
があります。セクションクラスを定義すると、必要なものに近い答えが得られます。また、両方のセクションのx座標が非減少であると仮定してもよいでしょうか? –
私の更新を見て、それぞれのポイントはgetX()とgetY()メソッド –
矩形クラスにはこのためのメソッドがありますか? 2つの矩形を作成した場合(それらの「セクション」と同じ大きさで配置されます)、intersection()
を使用してそれらを比較すると、重複領域の矩形が返されます。
のようです: 'rectangle1.intersection(rectangle2);' – 11684
「dpuble」とは何ですか? – 11684
間違い........ –
私はそれを疑っていますが、OOPではいつも自分で定義したクラス/オブジェクトを持つことができます! – 11684