Ориентация кривой

Свойство плоской простой замкнутой кривой

В математике ориентация кривой — это выбор одного из двух возможных направлений движения по кривой. Например, для декартовых координат ось x традиционно направлена ​​вправо, а ось y — вверх .

В случае плоской простой замкнутой кривой (то есть кривой на плоскости, начальная точка которой является также конечной точкой и которая не имеет других самопересечений), кривая называется положительно ориентированной или ориентированной против часовой стрелки , если при движении по ней внутренняя часть кривой всегда находится слева (и, следовательно, внешняя часть кривой — справа). В противном случае, то есть если левое и правое поменять местами, кривая является отрицательно ориентированной или ориентированной по часовой стрелке . Это определение основано на том факте, что каждая простая замкнутая кривая допускает хорошо определенную внутреннюю часть, что следует из теоремы Жордана о кривой .

Внутренняя петля кольцевой дороги в стране, где люди ездят по правой стороне дороги, является примером отрицательно ориентированной ( по часовой стрелке ) кривой. В тригонометрии единичная окружность традиционно ориентирована против часовой стрелки .

Понятие ориентации кривой является лишь частным случаем понятия ориентации многообразия (то есть, помимо ориентации кривой, можно говорить также об ориентации поверхности , гиперповерхности и т . д.).

Ориентация кривой связана с параметризацией ее точек действительной переменной. Кривая может иметь эквивалентные параметризации, когда есть непрерывная возрастающая монотонная функция, связывающая параметр одной кривой с параметром другой. Когда есть убывающая непрерывная функция, связывающая параметры, то параметрические представления противоположны и ориентация кривой меняется на обратную. [1] [2]

Ориентация простого многоугольника

Выбор опорных точек.
Выбор опорных точек.

В двух измерениях, если задан упорядоченный набор из трех или более соединенных вершин (точек) (например, в connect-the-dots ), который образует простой многоугольник , ориентация полученного многоугольника напрямую связана со знаком угла в любой вершине выпуклой оболочки многоугольника, например, угла ABC на рисунке. В вычислениях знак меньшего угла, образованного парой векторов, обычно определяется знаком векторного произведения векторов. Последний может быть вычислен как знак определителя их матрицы ориентации. В частном случае, когда два вектора определяются двумя отрезками с общей конечной точкой, такими как стороны BA и BC угла ABC в нашем примере, матрица ориентации может быть определена следующим образом:

O = [ 1 x A y A 1 x B y B 1 x C y C ] . {\displaystyle \mathbf {O} ={\begin{bmatrix}1&x_{A}&y_{A}\\1&x_{B}&y_{B}\\1&x_{C}&y_{C}\end{bmatrix}}.}

Формулу для ее определителя можно получить, например, с помощью метода разложения сомножителей :

det ( O ) = 1 | x B y B x C y C | 1 | x A y A x C y C | + 1 | x A y A x B y B | = x B y C y B x C x A y C + y A x C + x A y B y A x B = ( x B y C + x A y B + y A x C ) ( y A x B + y B x C + x A y C ) . {\displaystyle {\begin{aligned}\det(O)&=1{\begin{vmatrix}x_{B}&y_{B}\\x_{C}&y_{C}\end{vmatrix}}-1{\begin{vmatrix}x_{A}&y_{A}\\x_{C}&y_{C}\end{vmatrix}}+1{\begin{vmatrix}x_{A}&y_{A}\\x_{B}&y_{B}\end{vmatrix}}\\[4pt]&=x_{B}y_{C}-y_{B}x_{C}-x_{A}y_{C}+y_{A}x_{C}+x_{A}y_{B}-y_{A}x_{B}\\[4pt]&=(x_{B}y_{C}+x_{A}y_{B}+y_{A}x_{C})-(y_{A}x_{B}+y_{B}x_{C}+x_{A}y_{C}).\end{aligned}}}

Если определитель отрицательный, то многоугольник ориентирован по часовой стрелке. Если определитель положительный, то многоугольник ориентирован против часовой стрелки. Определитель не равен нулю, если точки A, B и C не лежат на одной прямой . В приведенном выше примере с точками, упорядоченными как A, B, C и т. д., определитель отрицательный, и, следовательно, многоугольник ориентирован по часовой стрелке.

Практические соображения

В практических приложениях обычно принимаются во внимание следующие соображения.

Не нужно строить выпуклую оболочку многоугольника, чтобы найти подходящую вершину. Обычным выбором является вершина многоугольника с наименьшей координатой X. Если их несколько, выбирается вершина с наименьшей координатой Y. Она гарантированно будет вершиной выпуклой оболочки многоугольника. В качестве альтернативы подойдет вершина с наименьшей координатой Y среди вершин с наибольшими координатами X или вершина с наименьшей координатой X среди вершин с наибольшими координатами Y (или любая другая из 8 комбинаций «наименьшая, наибольшая» X/Y). После выбора вершины выпуклой оболочки можно применить формулу, используя предыдущую и следующую вершины, даже если они не находятся на выпуклой оболочке, так как на этой вершине не может быть локальной вогнутости.

Если требуется определить ориентацию выпуклого многоугольника , то, конечно, можно выбрать любую вершину.

По числовым причинам обычно используется следующая эквивалентная формула для определителя:

det ( O ) = ( x B x A ) ( y C y A ) ( x C x A ) ( y B y A ) {\displaystyle \det(O)=(x_{B}-x_{A})(y_{C}-y_{A})-(x_{C}-x_{A})(y_{B}-y_{A})}

Последняя формула имеет на четыре умножения меньше. Что еще более важно в компьютерных вычислениях, используемых в большинстве практических приложений, таких как компьютерная графика или САПР , абсолютные значения множителей обычно меньше (например, когда A, B, C находятся в одном квадранте ) , что дает меньшую числовую ошибку или, в крайних случаях, позволяет избежать арифметического переполнения .

Когда заранее неизвестно, что последовательность точек определяет простой многоугольник, необходимо иметь в виду следующее.

Для самопересекающегося многоугольника ( сложного многоугольника ) (или для любой самопересекающейся кривой) нет естественного понятия "внутренней части", поэтому ориентация не определена. В то же время в геометрии и компьютерной графике существует ряд понятий, заменяющих понятие "внутренней части" для замкнутых непростых кривых; см., например, " заливка " и " число витков ".

В «мягких» случаях самопересечения с вырожденными вершинами, когда трем последовательным точкам разрешено находиться на одной прямой и образовывать нулевой угол, концепция «внутренней» все еще имеет смысл, но необходимо проявлять особую осторожность при выборе проверяемого угла. В приведенном примере представьте, что точка A лежит на отрезке BC. В этой ситуации угол ABC и его определитель будут равны 0, следовательно, бесполезны. Решение состоит в том, чтобы проверять последовательные углы вдоль многоугольника (BCD, DEF,...), пока не будет найден ненулевой определитель (если только все точки не лежат на одной прямой ). (Обратите внимание, что точки C, D, E находятся на одной прямой и образуют 180-градусный угол с нулевым определителем.)

Локальная вогнутость

Как только ориентация многоугольника, образованного из упорядоченного набора вершин, известна, вогнутость локальной области многоугольника может быть определена с помощью второй матрицы ориентации. Эта матрица состоит из трех последовательных вершин, которые исследуются на вогнутость. Например, в многоугольнике, изображенном выше, если мы хотим узнать, является ли последовательность точек FGH вогнутой , выпуклой или коллинеарной (плоской), мы строим матрицу

O = [ 1 x F y F 1 x G y G 1 x H y H ] . {\displaystyle \mathbf {O} ={\begin{bmatrix}1&x_{F}&y_{F}\\1&x_{G}&y_{G}\\1&x_{H}&y_{H}\end{bmatrix}}.}

Если определитель этой матрицы равен 0, то последовательность коллинеарна — ни вогнутая, ни выпуклая. Если определитель имеет тот же знак, что и матрица ориентации для всего многоугольника, то последовательность выпуклая. Если знаки различаются, то последовательность вогнутая. В этом примере многоугольник отрицательно ориентирован, но определитель для точек FGH положительный, и поэтому последовательность FGH вогнутая.

В следующей таблице приведены правила определения того, является ли последовательность точек выпуклой, вогнутой или плоской:

Отрицательно ориентированный многоугольник (по часовой стрелке)Положительно ориентированный многоугольник (против часовой стрелки)
Определитель матрицы ориентации для локальных точек отрицателенвыпуклая последовательность точеквогнутая последовательность точек
Определитель матрицы ориентации для локальных точек положителенвогнутая последовательность точеквыпуклая последовательность точек
Определитель матрицы ориентации для локальных точек равен 0коллинеарная последовательность точекколлинеарная последовательность точек

Смотрите также

Ссылки

  1. ^ Авраам Гетц (1970) Введение в дифференциальную геометрию , стр. 28, Эддисон Уэсли
  2. ^ Чуан-Чжи Сюн (1981) Первый курс дифференциальной геометрии , стр. 84, John Wiley & Sons
  • http://www.math.hmc.edu/faculty/gu/curves_and_surfaces/curves/_topology.html Архивировано 23 декабря 2004 г. на Wayback Machine (страница не найдена 27 июля 2023 г.)
  • Ориентация кривых в MathWorld
Retrieved from "https://en.wikipedia.org/w/index.php?title=Curve_orientation&oldid=1250027587"