Я уверен, что это, должно быть, задавали раньше, но я не нахожу это: я нахожу только связанные, но более сложные вопросы.
У меня есть четыре очка, представляющих две строки, такие какэто:
A C B D
|------*---|-----+----|-*---+---|----------|
0 10 20 30 40
Так, в примере, AB = {7, 21}
и CD = {16,26}
.(Линии могут быть в любом отношении друг к другу и любого размера.) Я хочу выяснить, перекрываются ли они, и насколько, если это так.(В этом примере ответом будет 5.) Мое текущее решение включает в себя несколько сложных шагов if / then, и я не могу не думать, что есть хорошее арифметическое решение.Есть ли там?
(PS Действительно, я делаю пересечение ограничивающих рамок, но если я смогу получить его в одном измерении, другое будет таким же, очевидно.)