Изменения

Перейти к: навигация, поиск

Трапецоидная карта

1611 байт добавлено, 15:33, 12 июня 2012
update2
Таким образом, сложный случай сводится к простому.
===update2===
Совместим update и алгоритм поиска новых трапецоидов.
Находим первый трапецоид, в который попал новый отрезок.
Предположим у нас простой случай, то есть менять нужно только один трапецоид.
В таком случаи мы сразу его модифицируем.
 
Если новый отрезок пересекает несколько трапецоидов.
Рассмотрим момент, когда текущий трапецоид заканчивается и мы начинаем рассматривать его соседей.
Очевидно, что если мы модифицируем закончившийся трапецоид, мы по прежнему сможем рассматривать его соседей.
При этом модифицификацию мы проводит так же, как в простом случаи.
 
'''Update'''(Segment s)
Point p = s.start
Point q = s.finish
Находим первый трапецоид <tex>\Delta_{0}</tex>
<tex>\Delta_{temp}</tex>
while q справа от rightp(<tex>\Delta_{0}</tex>)
if <tex>\Delta_{0}</tex> ниже <tex> s_{i} </tex>
<tex>\Delta_{temp}</tex> нижний правый сосед <tex>\Delta_{0}</tex>
else
<tex>\Delta_{temp}</tex> верхний правый сосед <tex>\Delta_{0}</tex>
Модифицируем <tex>\Delta_{0}</tex>
<tex>\Delta_{0} = \Delta_{temp}</tex>
==Случай коллизии==
Анонимный участник

Навигация