Вот пример кода, который покажет вам, как это сделать. Я предполагаю, что два раздела (a_from, a_to) и (b_from, b_to) и задают результирующий раздел (res_from, res_to). Кроме того, я только пересекаю интервалы на оси х, так как это кажется тем, что вы хотите. Идея состоит в том, что результаты начинаются с более поздних двух истоков и заканчиваются на более раннем из двух концов.
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()))
что такое 'dpuble' ?? – 11684
ошибка ........ –
Я подозревал, что, но в ООП у вас всегда могут быть определенные классы/объекты! – 11684