Document 611430

advertisement
ОБ ОДНОЙ ЗАДАЧЕ КОМПЬЮТЕРНОЙ ГЕОМЕТРИИ,
ПРИМЕНЯЕМОЙ ПРИ СЖАТИИ РЕЗУЛЬТАТОВ ВИДЕОНАБЛЮДЕНИЙ.
А.И Недошивина
(Воронежский институт МВД России, Воронеж.)
Во многих задачах компьютерной графики и других приложениях возникает следующая
геометрическая задача. На плоскости дана некоторая область D и координаты точки.
Требуется определить: находится ли точка внутри области D, снаружи области D или на её
границе.
В компьютерной графике известны геометрические или машинные способы решения
этой задачи [1-3], однако все они работают только в случае многоугольника D. В данной
работе предлагается ещё один алгоритм решения этой задачи для простейшего случая, когда
область D является многоугольником. Однако метод может быть обобщён и на случай
областей с криволинейной границей, например, когда граница состоит из сплайнов –
многочленов третьего или четвёртого порядков (кривые Безье). В этих случаях вычисления
несколько усложняются, но могут быть также доведены до конца в явном виде.
Алгоритм основан на использовании теорем Коши из теории функций комплексного
переменного [4]. Вычислим величину
dz
,
z

w

K
где ∆ - это контур многоугольника M, w – данная точка плоскости.
Тогда из теоремы и формулы Коши следует, что при K  0 точка w M , при K  2i
точка w M , а при K   точка w   .
Основное содержание работы состоит в вычислении формулы для величины К при
данных координатах вершин многоугольника M и точки плоскости w.
Рассмотрим в качестве простого примера случай треугольника АВС с вершинами
А=(0,0), В=(0,1), С=(1,0) и данной точки с координатами w=(x0,y0).
В этом случае вычисления с помощью пакета MATHEMATICA приводят к следующей
формуле для величины К.
K  {arctg(
 arctg(
y0
1 - y0
x  y0  1
x  y0  1
)  arctg(
)  arctg( 0
)  arctg( 0
)
x0
x0
x0  y 0  1
x0  y 0  1
x0
1 - x0
)  arctg(
)}.
y0
y0
Проанализируем полученную формулу. В результате величина К оказалась равной с
точностью до множителя сумме арктангенсов, аргументы которых представляются в виде
дробей. Знаменатели дробей – это уравнения сторон данного треугольника, а числители – это
уравнения перпендикуляров к каждой стороне в вершинах треугольника.
Может показаться, что полученная формула упрощается при помощи выражения для
суммы арктангенсов. К сожалению, это не так. Сумма арктангенсов определяется с
точностью до некоторых координатных углов, нахождение которых потребует фактически
информации о расположении данной точки относительно всех шести перечисленных
прямых (для произвольного треугольника прямых будет 9). Таким образом, для
сворачивания суммы арктангенсов мы должны заранее владеть информацией, эквивалентной
знанию расположения точки относительно треугольника, и получается порочный круг.
Однако указанное суммирование арктангенсов можно корректно провести частично в
том случае, если известна дополнительная частичная неполная информация о координатах
точки.
Забавным применением полученной формулы является метод получения семейства
тождеств для сумм арктангенсов. Например, очевидно, что точка w=(666,13) лежит вне
рассмотренного треугольника. Следовательно, получаем

2
 arctg (
326
109
665
2
)  arctg (
)  arctg (
)  arctg (
)  0.
339
113
13
111
Для получения общей формулы в случае произвольного многоугольника был вычислен
интеграл вдоль произвольной стороны. Он выражается через сумму трёх арктангенсов,
отвечающих уравнениям стороны и двух концевых перпендикуляров, а также сумму
логарифмов. При последующем суммировании по контуру многоугольника логарифмы
сокращаются, и остаётся сумма арктангенсов.
Полученная формула позволяет решать поставленную задачу о локализации точки
относительно многоугольника аналитически при помощи вычислений. Авторам неизвестен
другой подобный аналитический метод решения задачи о локализации. Кроме того,
представляется, что к числу достоинств предложенного метода можно отнести две его
особенности:
1) метод работает и для криволинейных границ, составленных из кусков сплайнов,
кривых Безье и тд. При этом вычисления с помощью пакета MATHEMATICA несколько
усложняются, однако без принципиальных затруднений доводятся до явных формул, как
только заданы уравнения частей границы. Кроме того, для каждой области вычисление
проводится только один раз, далее выполняется простая подстановка в уже полученную
формулу;
2) метод выгодно применять, когда точка лежит вблизи границы области.
Конкурирующие методы приводят к необходимости сравнивать практически равные числа,
тогда как в данном методе сравнивать приходится существенно различающиеся по модулю
величины: 0, 2π, ∞.
ЛИТЕРАТУРА:
1. Препарата Ф. Вычислительная геометрия. Введение/ Ф. Препарата, М.Шеймос. - М.:
Мир, 1989.
2. Ласло М. Вычислительная геометрия и компьютерная графика на С++/ М. Ласло. М.: Бином, 1997.
3. Роджерс Д. Алгоритмические основы машинной графики/ Д. Роджерс. - М.: Мир,
1989.
4. Евграфов М.А. Аналитические функции/ М.А. Евграфов. - М.: Наука, 1991.
5. Вышегородцева А.И., Ситник С.М. О применении методов теории функций
комплексного переменного в одной геометрической задаче.// Труды участников
международной школы-семинара по геометрии и анализу памяти Н.В.Ефимова.
Абрау-Дюрсо, "Лиманчик", 2006, С. 181-182.
Download