Описание тега overlap
Два или более элемента перекрываются, когда они частично или полностью перекрывают друг друга.
Два или более элемента перекрываются, когда они частично или полностью перекрывают друг друга.
Чтобы определить, перекрываются ли элементы или нет, нужно проверить, начинается ли один элемент до того, как закончится второй, а второй - до того, как закончится первый.
Например, вот все способы перекрытия двух линий:
1.
s1|--------|e1
s2|--------|e2
2.
s1|-------|e1
s2|--------|e2
3.
s1|--------|e1
s2|--------|e2
4.
s1|-------------------|e1
s2|--------|e2
5.
s1|--------|e1
s2|-------------------|e2
Обратите внимание, что s1
всегда меньше чем e2
, пока s2
всегда меньше чем e1
.
Это не тот случай, когда две линии не перекрываются:
1.
s1|--------|e1
s2|--------|e2
2.
s1|--------|e1
s2|--------|e2
Обратите внимание, что либо s1
больше, чем e2
или s2
больше, чем e1
.
Фактический тип данных элементов совершенно не имеет значения, если он сопоставим.
Следовательно, чтобы проверить, перекрывают ли два элемента друг друга, все, что вам нужно сделать, это следующее: (псевдокод)
If a.Start < b.End AND b.Start < a.End Then
Overlap
Else
No overlap