Трапецоидная карта — различия между версиями

Материал из Викиконспекты
Перейти к: навигация, поиск
(Структура данных)
Строка 11: Строка 11:
  
 
==Структура данных==
 
==Структура данных==
 
+
[[Файл:Trapazoidmapshagal.jpg|650px|thumb|right|трапецоидная карта]]
 
 
  
Строка 25: Строка 25:
 
  |statement= Любой face трапецоидной карты ограничен одним или двумя вертикальными отрезками и обязательно двумя не вертикальными отрезками.
 
  |statement= Любой face трапецоидной карты ограничен одним или двумя вертикальными отрезками и обязательно двумя не вертикальными отрезками.
 
}}
 
}}
[[Файл:Trapazoidmapshagal.jpg|650px|thumb|right|трапецоидная карта]]
+
 
 
 
Именно отсюда берется название стрктуры, так как любой face либо трапеция, либо треугольник.
 
Именно отсюда берется название стрктуры, так как любой face либо трапеция, либо треугольник.
 
 
Строка 33: Строка 32:
  
 
*левая граница(leftp) - точка определяющая левуюы сторону трапецоида или в случаи треугольника просто являющаяся левой вершиной.
 
*левая граница(leftp) - точка определяющая левуюы сторону трапецоида или в случаи треугольника просто являющаяся левой вершиной.
 
 
*правая граница(rightp) - аналогично левой только справа.
 
*правая граница(rightp) - аналогично левой только справа.
  
Строка 42: Строка 40:
 
*пусть <tex>\Delta_1 и \Delta_2</tex> смежны и либо top(<tex>\Delta_1</tex>) = top(<tex>\Delta_2</tex>), либо bottom(<tex>\Delta_1</tex>) = bottom(<tex>\Delta_2</tex>)
 
*пусть <tex>\Delta_1 и \Delta_2</tex> смежны и либо top(<tex>\Delta_1</tex>) = top(<tex>\Delta_2</tex>), либо bottom(<tex>\Delta_1</tex>) = bottom(<tex>\Delta_2</tex>)
 
Тогда <tex>\Delta_1</tex>,<tex>\Delta_2</tex> называют либо большими левыми соседями, либо меньшими.
 
Тогда <tex>\Delta_1</tex>,<tex>\Delta_2</tex> называют либо большими левыми соседями, либо меньшими.
 +
 +
[[Файл:Trapezoidmapnavigationshagal.jpg|650px|thumb|right|навигация в трапецоидной карте]]
 +
  
 
Хранить трапецоиды можно в чем угодно. Вместе с самим трапецоидом, стоит хранить leftp, rightp, top и bottom так же следует хранить соседей трапецоида.
 
Хранить трапецоиды можно в чем угодно. Вместе с самим трапецоидом, стоит хранить leftp, rightp, top и bottom так же следует хранить соседей трапецоида.

Версия 22:02, 15 февраля 2012

Трапецоидная карта - геометрическая структура позволяющая локализоваться на площади за [math]O(log(n))[/math].

Постановка задачи

 Предположим, у нас есть наши координаты, и есть карта мира.
 
 Мы можем найти по карте наше местоположение и сказать в какой области мы находимся.
 Области задаются отрезками. 
 
 Формальная постановка задачи	
 Есть множество отрезков на плоскости.
 Есть запрос (точка q), на выход подается область заданная какими-то отрезками в которой находится q.

Структура данных

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


  • Геометрическая

У нас есть множество отрезков ограничееных оболочкой R(это не выпуклая оболочка, а просто мнимая граница плоскости за которую не вылезают отрезки)

Мы договариваемся что никакие две точки не лежат на одной вертикале(в противном случаи все еще противнее)

Трапецоидная карта множества отрезков S - это эти отрезки + из кажой точки выпущены два луча, вверх и вниз до первого пересечения с другим отрезком или с оболочкой R.

Лемма:
Любой face трапецоидной карты ограничен одним или двумя вертикальными отрезками и обязательно двумя не вертикальными отрезками.

Именно отсюда берется название стрктуры, так как любой face либо трапеция, либо треугольник.


Введем обозначения для навигации по карте.

  • левая граница(leftp) - точка определяющая левуюы сторону трапецоида или в случаи треугольника просто являющаяся левой вершиной.
  • правая граница(rightp) - аналогично левой только справа.
  • верхний отрезок(top) и нижний отрезок(bottom) - отрезки ограничивающие трапецоид сверху и снизу.
  • трапецоиды называются смежными, если имеют общую вертикальную границу.
  • пусть [math]\Delta_1 и \Delta_2[/math] смежны и либо top([math]\Delta_1[/math]) = top([math]\Delta_2[/math]), либо bottom([math]\Delta_1[/math]) = bottom([math]\Delta_2[/math])

Тогда [math]\Delta_1[/math],[math]\Delta_2[/math] называют либо большими левыми соседями, либо меньшими.

навигация в трапецоидной карте


Хранить трапецоиды можно в чем угодно. Вместе с самим трапецоидом, стоит хранить leftp, rightp, top и bottom так же следует хранить соседей трапецоида.