Вычислительная геометрия

Эта статья находится на начальном уровне проработки, в одной из её версий выборочно используется текст из источника, распространяемого под свободной лицензией
Материал из энциклопедии Руниверсалис

Вычислительная геометрия — раздел информатики, в котором рассматриваются алгоритмы для решения геометрических задач.

В ней рассматриваются такие задачи как триангуляция, построение выпуклой оболочки, определение принадлежности одного объекта другому, поиск их пересечения и т. п. Оперируют с такими геометрическими объектами как: точка, отрезок, многоугольник, окружность

Вычислительная геометрия используется в распознавании образов, машинной графике, инженерном проектировании и т. д.

Векторная алгебра

Часто используются для численных манипуляций координаты точки и вектора.

Здесь рассмотрим случай обычной декартовой системы координат.

Длина вектора [math]\displaystyle{ \overrightarrow{a}=(x,y,z) }[/math] обозначается [math]\displaystyle{ |\overrightarrow{a}|=\sqrt{x^2+y^2+z^2} }[/math].

Для двух векторов [math]\displaystyle{ \overrightarrow{a}=(x_1,y_1,z_1) }[/math] и [math]\displaystyle{ \overrightarrow{b}=(x_2,y_2,z_2) }[/math] их сложение определяется как [math]\displaystyle{ \overrightarrow{a}+\overrightarrow{b}=(x_1+x_2,y_1+y_2,z_1+z_2) }[/math].

Умножение вектора [math]\displaystyle{ \overrightarrow{a}=(x,y,z) }[/math] на скаляр k определяется как [math]\displaystyle{ \overrightarrow{b}=k\overrightarrow{a}=(k x, k y, kz) }[/math]. При этом длина вектора меняется в [math]\displaystyle{ |k| }[/math] раз. Если k < 0, то направление вектора меняется на противоположное.

Скалярное произведение векторов [math]\displaystyle{ \overrightarrow{a}=(x_1,y_1,z_1) }[/math] и [math]\displaystyle{ \overrightarrow{b}=(x_2,y_2,z_2) }[/math] равно [math]\displaystyle{ x_1x_2+y_1y_2+z_1z_2 }[/math].

Векторное произведение векторов [math]\displaystyle{ \overrightarrow{a}=(x_1,y_1) }[/math] и [math]\displaystyle{ \overrightarrow{b}=(x_2,y_2) }[/math] равно [math]\displaystyle{ \left\{y_1 z_2 - z_1 y_2,~ z_1 x_2 - x_1 z_2,~ x_1 y_2 - y_1 x_2 \right\} }[/math]. Это единственная операция, где уменьшение размерности пространства не сводится к простому отбрасыванию третьей координаты (замене её нулём). Обычно для двумерных векторов значением векторного произведения берут третью координату соответствующих трёхмерных векторов: [math]\displaystyle{ x_1y_2-x_2y_1 }[/math].

Виды многоугольников (полигонов)

Многоугольник — замкнутая кривая на плоскости, состоящая из отрезков прямых линий. Отрезки называются сторонами многоугольника, а их концы — вершинами многоугольника.

Многоугольник называется простым, если он не пересекается сам с собой.

Многоугольник называется выпуклым, если все его внутренние углы меньше или равны 180 градусам.

Цепочка вершин называется монотонной, если любая вертикальная линия пересекает её не более одного раза. Многоугольник, составленный из двух таких цепочек называется монотонным.

Алгоритмы

См. также

Литература

  • Препарата Ф., Шеймос М. Вычислительная геометрия: Введение = Computational Geometry An introduction. — М.: Мир, 1989. — 478 с.
  • Берг М., Чеонг О., Кревельд М., Овермарс М. Вычислительная геометрия. Алгоритмы и приложения = Computational Geometry: Algorithms and Applications. — М.: ДМК-Пресс, 2016. — 438 с. — ISBN 978-5-97060-406-9.
  • Фокс А., Пратт М. Вычислительная геометрия. Применение в проектировании и производстве. — М.: Мир, 1982. — 304 с.
  • Ласло М. Вычислительная геометрия и компьютерная графика на C++. — М.: БИНОМ, 1997. — 304 с.
  • Скворцов А.В. Триангуляция Делоне и её применение. — Томск: Издательство Томского университета, 2002. — 128 с.
  • Кормен, Томас Х., Лейзерсон, Чарльз И., Ривест, Рональд Л., Штайн, Клифорд. Глава 33. Вычислительная геометрия // Алгоритмы: построение и анализ = Introduction to Algorithms. — 2-e издание. — М.: «Вильямс», 2005. — С. 1047 — 1084. — ISBN 5-8459-0857-4.
  • Mark de Berg, Marc van Kreveld, Mark Overmars, Otfried Schwarzkopf. Computational Geometry: Algorithms and Applications. — Springer, 2000. — 368 с.
  • David M. Mount. Computional Geometry. — University of Maryland, 2002. — 122 с.
  • Elmar Langetepe, Gabriel Zachmann. Geometric Data Structures for Computer Graphics. — A K Peters, 2006. — 362 с. — ISBN 1568812353.
  • Hormoz Pirzadeh. Computational Geometry with the Rotating Calipers. — McGill University, 1999. — 118 с.
  • Jacob E. Goodman, Joseph O'Rourke. Handbook of Discrete and Computational Geometry. — CRC Press LLC, 1997. — 956 с.
  • Jianer Chen. Computational Geometry: Methods and Applications. — Texas A&M University, 1996. — 228 с.
  • Joseph O'Rourke. Computational Geometry in C. — Cambridge University Press, 1998. — 362 с.
  • A.R. Forrest. Computational Geometry. — series 4. — Proc. Royal Society London, 1971. — 321 с.