Неявна крива
У математиці неявна крива — це плоска крива, яка визначається неявним рівнянням стосовно змінних координат x і y. Наприклад, одиничне коло визначається неявним рівнянням . Взагалі кожна неявна крива визначається рівнянням виду
для деякої функції F двох змінних. Отже, неявну криву можна розглядати як множину нулів функції двох змінних. Неявна означає, що у рівнянні не виражено x через y або навпаки.
Якщо є поліномом двох змінних, відповідна крива називається алгебраїчною кривою, і для її вивчення доступні конкретні методи.
Плоскі криві можуть бути представлені в декартових координатах (координати x, y) трьома способами, один з яких є неявним рівнянням, наведеним вище. Графік функції зазвичай описується рівнянням , у якому явно зазначено функціональну форму; це називається явним поданням. Третій спосіб опису кривої — параметричний, де x- та y-координати точок кривої представлені двома функціями x(t), y(t), функціональні форми яких явно вказані і які залежать від деякого параметру
Приклади неявних кривих:
- пряма:
- коло:
- напівкубічна парабола:
- овали Кассіні: (див. рисунок),
- (див. рисунок).
Перші чотири приклади — алгебраїчні криві, але остання не є алгебраїчною. Перші три приклади мають прості параметричні представлення, що не можливо для четвертого і п'ятого прикладів. П'ятий приклад показує можливу складну геометричну структуру неявної кривої.
Теорема про неявну функцію описує умови, за яких рівняння може бути розв'язано неявно для x та/або y — тобто під яким можна написати або і ці рівняння будуть задавати ту саму множину. Ця теорема є фундаментальною для обчислення важливих геометричних властивостей кривої: дотичних, нормалей та кривин. На практиці неявні криві мають суттєвий недолік: їх складно візуалізувати. Але є комп'ютерні програми, які дозволяють зобразити неявну криву. Особливі властивості неявних кривих роблять їх важливими засобами в геометрії та комп'ютерній графіці.
Неявна крива з рівнянням може розглядатися як крива рівня 0 поверхні (див. третій рисунок).
Нахил і кривина[ред. | ред. код]
Загалом, неявні криві провалюють перевірку вертикальною лінією[en] (це означає, що деякі значення x пов'язані з більш, ніж одним значенням y) і тому не обов'язково є графіками функцій. Проте теорема про неявну функцію дає умови, за яких неявна крива локально задається графом функції (зокрема, вона не має самоперетину). Якщо визначальні співвідношення досить гладкі, то в таких областях неявні криві мають чітко визначені нахили, дотичні, нормальні вектори і кривину.
Існує кілька можливих способів обчислення цих величин для даної неявної кривої. Одним з методів є використання неявного диференціювання для обчислення похідних y відносно x. Для кривої, визначеної неявним рівнянням , похідну можна виразити безпосередньо через часткові похідні . Далі визначаються часткові похідні (для похідної по x), , (для другої похідної по x), (для змішаної похідної другого порядку),
Дотична і нормальний вектор[ред. | ред. код]
Точка кривої називається регулярною, якщо перші часткові похідні і в ній одночасно не дорівнюють 0.
Рівняння дотичної в регулярній точці має вигляд
тому кутовий коефіцієнт дотичної, а отже і нахил кривої в цій точці, дорівнює
Якщо в , крива є вертикальною в цій точці, в той час, коли одночасно і , крива не є диференційованою в розглядуваній точці, але замість неї є особлива точка — або касп, або точка, де крива перетинає сама себе.
Нормальний вектор до кривої в точці задається формулою
(тут написано як вектор лінії).
Кривина[ред. | ред. код]
Для читабельності формул аргументи опустимо. Кривина у регулярній точці задається формулою
- .[1]
Виведення формул[ред. | ред. код]
Теорема про неявну функцію стверджує, що в межах околу точки існує функція така, що . За правилом диференціювання складеної функції похідні функції такі
- і
(аргументи у правій частині другої формули опущені для зручності читання).
Підставимо похідні функції у формули для дотичної та кривини явного рівняння , отримаємо
- (дотична)
- (кривина).
Переваги і недоліки неявних кривих[ред. | ред. код]
Недолік[ред. | ред. код]
Істотним недоліком неявної кривої є відсутність простої можливості обчислення окремих точок, необхідних для візуалізації неявної кривої.
Переваги[ред. | ред. код]
- Неявні представлення полегшують обчислення точок перетину: якщо одна крива представлена неявно, а інша - параметрично, то обчислення точок перетину потребує простої (1-мірної) ітерації Ньютона ( див. Перетин ).
- Неявне представлення дає можливість вибору точок кривої незалежно від знаку. Це може бути корисним, наприклад, для застосування методу помилкової позиції замість ітерацій Ньютона.
- Легко генерувати криві, які майже геометрично подібні до даної неявної кривої просто додавши невелике число: (див. розділ Гладкі апроксимації).
Застосування неявних кривих[ред. | ред. код]
У математиці неявні криві відіграють важливу роль як алгебраїчні криві. Крім того, неявні криві використовуються для проектування кривих потрібних геометричних форм. Ось два приклади.
Гладкі апроксимації[ред. | ред. код]
Опуклі багатокутники[ред. | ред. код]
Гладкої апроксимації опуклого многокутника можна досягнути наступним чином: нехай - рівняння ліній, що містять ребра багатокутника, такі, що для внутрішньої точки багатокутника додатні. Тоді підмножина неявної кривої
з відповідним малим параметром є гладким (диференційованим) наближення багатокутника. Наприклад, криві
- для
містять гладкі наближення багатокутника з 5 ребрами (див. рисунок).
Пари ліній[ред. | ред. код]
У випадку двох ліній
отримуємо
- рівняння паралельних ліній , якщо задані лінії є паралельними або
- рівняння гіпербол, які мають задані лінії як асимптоти.
Наприклад, добуток координат осей дає рівняння гіпербол , для яких осі координат є асимптотами.
Інше[ред. | ред. код]
Якщо починати з простих неявних кривих, відмінних від ліній (кола, параболи, ...), то отримуємо широкий спектр нових цікавих кривих. Наприклад,
(добуток кола і осі x) дає гладкі наближення однієї половини кола (див. рисунок), і
(добуток двох кіл) дає гладкі наближення перетину двох кіл (див. рисунок).
Криві змішування[ред. | ред. код]
У САПР використовуються неявні криві для генерації кривих змішування [2] [3] ,які є спеціальними кривими, що встановлюють гладкий перехід між двома заданими кривими. Наприклад,
генерує криві змішування між двома колами
Метод гарантує неперервність дотичних та кривих у точках контакту (див. рисунок). Дві лінії
визначають точки дотику кіл. Параметр є конструктивним параметром. На рисунку .
Еквіпотенціальні криві двох точкових зарядів[ред. | ред. код]
Еквіпотенціальні криві двох рівних точкових зарядів у точках може бути представлена рівнянням
Криві подібні до овалів Cassini, але вони не є такими кривими.
Візуалізація неявної кривої[ред. | ред. код]
Для візуалізації неявної кривої зазвичай визначається область на кривій і відображається та ж область. Для параметричної кривої це непросте завдання: просто обчислюються точки послідовності параметричних значень. Для неявної кривої необхідно вирішити дві підзадачі:
- визначення першої точки кривої відповідно до заданої початкової точки в околі кривої,
- визначення точки кривої, починаючи з відомої точки кривої.
В обох випадках доцільно припустити . На практиці це припущення порушується лише в окремих ізольованих точках.
Алгоритм точки (точковий алгоритм)[ред. | ред. код]
Для вирішення обох вищезазначених завдань необхідно мати комп'ютерну програму (яку ми назвемо ), яка, коли дана точка поблизу неявної кривої, знаходить точку на кривій:
- (P1) для початкової точки
- (P2) , повтор
-
- ( Крок Ньютона для функції
-
- (P3) поки відстані між точками досить малі.
- (P4) - точка кривої поблизу початкової точки .
Алгоритм трасування[ред. | ред. код]
Для того, щоб генерувати майже однаково рознесений полігон на неявній кривій, вибирається довжина кроку і
- (T1) вибирається відповідна початкова точка поблизу кривої
- (T2) визначається перша точка кривої за допомогою програми
- (T3) визначається напрямляючий вектор, вибирається початкова точка дотичної з використанням довжини кроку (див. малюнок) і визначається друга точка кривої за допомогою програми .
Оскільки алгоритм трасує неявну криву, він називається алгоритмом трасування. Алгоритм простежує лише зв'язані частини кривої. Якщо неявна крива складається з декількох частин, алгоритм потрібно запускати кілька разів з відповідними вихідними точками.
Растровий алгоритм[ред. | ред. код]
Якщо неявна крива складається з декількох або навіть невідомих частин, краще використовувати алгоритм растеризації. Замість того, щоб точно слідувати за кривою, алгоритм растру охоплює всю криву на стільки точок, що вони змішуються і виглядають як крива.
- (R1) Створіть мережу точок (растру) на ділянці площини xy.
- (R2) Для кожної точки у растрі запустіть алгоритм точки починаючи з P, позначте його вихід.
Якщо мережа достатньо щільна, результат наближається до з'єднаних частин неявної кривої.
Неявні криві у просторі[ред. | ред. код]
Будь-яка просторова крива, яка визначається двома рівняннями
називається неявною кривою у просторі.
Точка кривої називається регулярною, якщо векторний добуток градієнтів і не для неї:
інакше вона називається сингулярною. Вектор називають дотичним вектором кривої в точці
Приклади:
- - пряма.
- - плоский розріз сфери, отже, коло.
- - еліпс (плоский переріз циліндра).
- - крива перетину сфери та циліндра.
Для обчислення точок кривих і візуалізації неявних просторових кривих див Перетин.
Список літератури[ред. | ред. код]
- ↑ Goldman, R. (2005). Curvature formulas for implicit curves and surfaces. Computer Aided Geometric Design. 22 (7): 632. doi:10.1016/j.cagd.2005.06.005.
- ↑ C. Hoffmann & J. Hopcroft: Метод потенціалу для змішування поверхонь і кутів у G. Farin (Ed) Geometric-Modeling , SIAM, Philadelphia, pp. 347-365
- ↑ E. Hartmann: Змішування неявних поверхонь з функціональними сплайнами , CAD, Butterworth-Heinemann, том 22 (8), 1990, p. 500-507
- ↑ Г. Таубін: Дистанційні апроксимації растрових неявних кривих. ACM Transactions on Graphics, Vol. 13, №1, 1994.
- Gomes, A., Voiculescu, I., Jorge, J., Wyvill, B., Galbraith, C.: Implicit Curves and Surfaces: Mathematics, Data Structures and Algorithms, 2009, Springer-Verlag London, ISBN 978-1-84882-405-8
- C:L: Bajaj, C.M. Hoffmann, R.E. Lynch: Tracing surface intersections, Comp. Aided Geom. Design 5 (1988), 285-307.
- Geometry and Algorithms for COMPUTER AIDED DESIGN [Архівовано 30 жовтня 2017 у Wayback Machine.]
Зовнішні посилання[ред. | ред. код]
- Відомі криві [Архівовано 13 квітня 2006 у Wayback Machine.]