Линейное выражение для длины пересечения двух линий в 1D - PullRequest
0 голосов
/ 28 сентября 2018

Учитывая первую строку от a до b, где a < b и вторую строку от x до y, где x < y, как рассчитать длину пересечения этих двух?

Пример:

a =0, b=5, x=3, y=7

012345
|----|
   |---|
   34567

результат будет 2, так как они являются пересечением от 3 до 5.

Есть ли выражение с этими 4переменные для извлечения результата?Нет гарантии, что пересечение существует, и не гарантируется, что x > a

Я посмотрел примеры пересечения временного интервала, но все они имеют выражение if, что невозможно в моей ситуации.

1 Ответ

0 голосов
/ 28 сентября 2018

Логика довольно проста:

if (y<a) or (x>b):
       return  no intersection

intersection.left = max(a, x)
intersectioni.right = min(b, y)
...