Неявная кривая: различия между версиями

Материал из Википедии — свободной энциклопедии
Перейти к навигации Перейти к поиску
Содержимое удалено Содержимое добавлено
Перевод статьи с английского "implicit curve"
(нет различий)

Версия от 16:49, 22 декабря 2020

Овалы Кассини:
(1) a=1.1, c=1 (сверху),
(2) a=c=1 (в середине),
(3) a=1, c=1.05 (снизу)
Неявная кривая
Неявная кривая как множества уровня поверхности

Неявная кривая — это плоская кривая, определённая уравнением|уравнением в неявном виде, связывающим две координатные переменные, обычно обозначаемые x и y. Например, единичная окружность задаётся уравнением в неявном виде . В принципе, любая неявная кривая задаётся уравнением вида

для некоторой функции F от двух переменных. Следовательно, неявная функция может рассматриваться как множество нулей функции от двух переменных. Неявная означает, что равенство не выражает ни решение x от переменной y, ни наоборот.

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

Плоская кривая может быть представлена в декартовых координатах (координатах x, y) любым из трёх методов, одним из которых является уравнение в неявном виде, приведённое выше. График функции обычно описывается равенством , в котором явно представлена функция, это называется явным представлением. Третьим важным способом описания кривой является параметрическое описание, где координаты x и y точек кривой представлены двумя функциями x(t), y(t), обе в форме явного представления и обе зависят от общего параметра

Примеры неявных кривых:

  1. прямая:
  2. окружность:
  3. Полукубическая парабола:
  4. Овалы Кассини (см. рисунок),
  5. (см. рисунок).

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

Теорема о неявной функции описывает условия, при которых равенство может быть решено неявно по x и/или по y. То есть условия, при которых можно правомерно записать или . Эта теорема является ключевым фактором для вычисления важных геометрических свойств кривой — касательных, нормалей и кривизн. На практике неявные кривые имеют существенный изъян — часто их визуальное представление затруднительно. Существуют однако компьютерные программы, позволяющие нарисовать неявную кривую. Особые свойства неявных кривых делают эти программы важным средством в геометрии и компьютерной графике.

Неявная кривая с уравнением может рассматриваться как множество уровня со значением 0 для поверхности (см. третий рисунок).

Наклон и кривизна

В общем случае для неявных кривых не проходит тест (на функцию) с помощью вертикальной прямой (что означает, что некоторым значениям x соответствуют более одного значения y), а потому кривая не является графиком функции. Однако, теорема о неявной функции даёт условие, при котором неявная кривая локально задаётся графиком функции (в частности, кривая не должна самопересекаться). Если определяющие соотношения достаточно гладкие в таких областях, неявные кривые имеют хорошо определённые наклоны, касательные прямые, нормальные вектора и кривизны.

Есть несколько возможных путей вычисления этих величин для данной неявной кривой. Одним из методов является использование неявного дифференцирования для вычисления производной y по x. Кроме того, для кривой, заданной уравнением в неявном виде , можно выразить эти формулы напрямую в терминах частных производных функции . Ниже используются следующие обозначения: частные производные (производная по x), , (для второй производной по x), (для смешанной второй частной производной),

Касательный и нормальный вектор

Точка кривой называется регулярной, если первые частные производные и не равны нулю одновременно.

Уравнение касательной прямой в регулярной точке

так что наклон касательной прямой, а следовательно и наклон кривой в этой точке равен

наклон

Если в точке кривая вертикальна в этой точке, в то время как в случае равенства нулю обоих производных и в этой точке кривая здесь не дифференцируема, имеет особую точку – либо касп, либо точку самопересечения.

Нормальный вектор к кривой в точке задаётся равенством

(здесь вектор записан в виде строки).

Кривизна

Для читаемости формул аргументы опущены. Кривизна в регулярной точке задаётся формулой

[1].

Вывод формул

Теорема о неявной функции гарантирует в окрестности точки существование функции , такой что . По формуле сложной производной, производные функции равны

и

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

Если вставить производные функции в формулы касательной прямой и кривизны графика, получаем явное равенство

(касательная прямая)
(кривизна).

Преимущества и недостатки неявных кривых

Недостатки

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

Преимущества

  1. Неявные представления позволяют вычисление точек пересечения — если одна кривая представлена неявно, а другая представлена параметрически, для вычисления точек пересечения нужна лишь простая (одномерная) итерация Ньютона, в отличие от случаев неявная-неявная и параметрическая-параметрическая (см. Пересечение?!).
  2. Неявное представление даёт возможность разделить точки вне кривой по знаку . Это может быть полезно, например, при использовании методов ложного положения[англ.] вместо итерации Ньютона.
  3. Легко создать кривые, которые геометрически почти подобны заданной неявной кривой путём просто добавления маленького числа: (см. раздел Гладкая аппроксимация).

Использование неявных кривых

Гладкая аппроксимация выпуклого многоугольника

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

Гладкие аппроксимации

Выпуклые многоугольники

Гладкая аппроксимация выпуклого многоугольника может быть получена следующим образом. Пусть будет уравнениями прямых, содержащих рёбра многоугольника, при этом внутренние точки многоугольника дают функциям положительные значения. Тогда подмножество неявных кривых

с подходящим маленьким параметром является гладкой (дифференцируемой) аппроксимацией многоугольника. Например, кривые

для
Гладкая аппроксимация 1)половины круга, 2) пересечения двух кругов

содержат гладкие аппроксимации многоугольника с 5 рёбрами (см. рисунок).

Пары прямых

В случае двух прямых

получаем

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

Например, произведение координатных переменных даёт пучок гипербол , для которых оси координат являются асимптотами.

Другие

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

(произведение формулы окружности и формулы прямой – оси y) даёт гладкую аппроксимацию полукруга (см. рисунок),

(произведение формул двух окружностей) даёт гладкую аппроксимацию двух окружностей (см. рисунок).

Смешение кривых

Смешивающие кривые (красные) двух окружностей

В САПР используются неявные кривые для создания соединения кривых[2][3], специальный вид кривых, позволяющих гладкое соединение одной кривой с другой. Например,

образует соединяющие кривые между двумя окружностиями

Метод гарантирует непрерывность касательных и кривизн в точках касания (см. рисунок). Две прямых

определяют точки контакта с окружностями. Параметр является параметром. На рисунке .

Изолинии двух точечных зарядов

Изолинии двух точечных зарядов в синих точках

Изолинии двух равных точечных зарядов в точках можно представить равенством

Кривые похожи на овалы Кассини, но таковыми не являются.

Визуализация неявной кривой

Для визуализации неявной кривой обычно определяют многоугольник на кривой и рисуют многоугольник. Для параметрической кривой эта задача проста — просто вычисляются точки, соответствующие последовательности параметрических значений. Для неявной кривой нужно решить две подзадачи:

  1. определение первой точки на кривой вблизи заданной стартовой точки,
  2. определение точки на кривой, начиная с известной точки на кривой.

В обоих случаях естественно положить . На практике это предположение нарушается в единственной изолированной точке.

Алгоритм точки

Для решения обоих задач, упомянутых выше, нужно иметь компьютерную программу (которую будем называть ), которая по заданной точке вблизи неявной кривой находит точку , лежащую на кривой:

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

Алгоритм трассировки

для алгоритма трассировки: стартовые точки показаны зелёным цветом

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

(T1) выбирают подходящую начальную точку вблизи кривой
(T2) определяют току кривой с помощью программы
(T3) определяют касательную (см. выше), выбирают стартовую точку на касательной, отстоящую на длину шага (см. рисунок) и находят вторую точку на кривой с помощью программы .

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

Пример: Иллюстрация растрового алгоритма для неявной кривой . Кривая (красная) — это кривая, которую алгоритм пытается нарисовать. Растровые точки (чёрные) используются в качестве стартовых точек для поиска ближайших точек на кривой (красные кружочки). Расстояние между растровыми точками специально сделано большим, чтобы показать индивидуальные точки кривых. Чтобы более точно отобразить кривую, следует использовать больше растровых точек [4].

Растровый алгоритм

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

(R1) Образуем сеть точек (растр) в интересующей нас области плоскости x-y.
(R2) Для каждой точки растра прогоняем алгоритм со стартовой точкой P и отмечаем результат.

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

Неявные пространственные кривые

Любая пространственная кривая, определённая двумя уравнениями

называется неявной пространственной кривой.

Точка кривой называется регулярной, если векторное произведение градиентов и не равно в этой точке:

В противном случае точка называется особой (сингулярной). Вектор является касательным вектором кривой в точке

Кривая пересечения сферы и цилиндра

Примеры:

является прямой.

является сечением сферы плоскостью, то есть окружностью.

является эллипсом (сечением цилиндра плоскостью).

является пересечением сферы и цилиндра.

Для вычисления точек кривой и визуализации неявной пространственной кривой см. статью Пересечение?!.

См. также

Примечания

  1. Goldman, 2005, с. 632.
  2. Hoffmann, Hopcroft, 1985, с. 347-365.
  3. Hartmann, 1990, с. 500-507.
  4. Taubin, 1994.

Литература

  • Gomes A., Voiculescu I., Jorge J., Wyvill B., Galbraith C. Implicit Curves and Surfaces: Mathematics, Data Structures and Algorithms. — Springer-Verlag, 2009. — ISBN 978-1-84882-405-8.
  • C.L. Bajaj, C.M. Hoffmann, R.E. Lynch. Tracing surface intersections // Comp. Aided Geom. Design. — 1988. — Вып. 5. — С. 285-307.
  • C. Hoffmann, J. Hopcroft. The potential method for blending surfaces and corners // Geometric-Modeling / G. Farin (Ed). — Philadelphia: SIAM, 1985.
  • E. Hartmann. Blending of implicit surfaces with functional splines // CAD,. — Butterworth-Heinemann, 1990. — Т. 22, вып. 8.
  • Goldman R. Curvature formulas for implicit curves and surfaces // Computer Aided Geometric Design. — 2005. — Т. 22, вып. 7. — doi:10.1016/j.cagd.2005.06.005.
  • G. Taubin. Distance Approximations for Rastering Implicit Curves // ACM Transactions on Graphics. — 1994. — Т. 13, № 1.
  • Geometry and Algorithms for COMPUTER AIDED DESIGN

Ссылки