Нехай треба знайти рівняння лінії перетину центральної поверхні обертання другого порядку (1.93) і площини, заданої трьома точками M0(x0, y0, z0), M1 (x1, y0, z1), M2 (x2, y2, z2). Застосування формулу (1.85) дістанемо: А¹0, В¹0, С¹0, D¹0), знаходимо
(1.124)
Підставивши ці вирази дістанемо параметричні рівняння січної площини:
(1.125)
Тепер підставимо вирази (1.125) у рівняння поверхні (1.93). У результаті матимемо
(1.126)
Це рівняння другого ступеня відносно u та v, тобто його можна розв'язати відносно будь-якої з цих змінних.
Натуральний вигляд лінії перетину знайдемо побудовою графіка функції (1.126) за її рівнянням у системі uОv. Масиви координат uі, vі, що визначаються в процесі побудови, підставимо в параметричні рівняння січної площини (1.125). Дістанемо просторові координати хі уі zі , точок, які визначають лінію перетину. Наведемо приклади програмної реалізації цього алгоритму для двох поверхонь, що перетинаються площиною.
На рис. 23.1 наведено в ізометричній проекції поверхню еліпсоїда обертання за функцією (1,93) при а = 3, с = 5, р = 1, q = 1, що перетинаються площиною [див. рівняння (1.85)] при А = 1, В = 3, С = 16, D = -16.
На рис. 23.2 зображено в ізометричній проекції поверхню однопорожнинного гіперболоїда, що перетинається тією самою січною площиною. Порівняно з попередніми вхідні дані відрізняються тільки значенням р, яке в цьому випадку набуває значення -1.
Застосуємо наведений алгоритм для побудови лінії перетину прямої призми та
площини. Нехай січна площина має такі коефіцієнти A, B, C, D при яких виконуються рівності (1.124) і (1.125). Позначимо і підставимо вирази (1.124) у рівняння (1.85), що при значеннях t згідно з рівнянням (1.119) є рівнянням граней призми, В результаті матимемо
. (1.126а)
Це є рівнянням лінії перетину і рані призми із січною площиною у системі uОv на січні із площині. Підставляючи замість u його значення з рівняння (1.120), знайдемо координати uі та vі, точок перетину ребер призми із січною площиною. Нагадаємо, що замість t треба підставляти у рівняння (1.126а) послідовно значення з формули (1.119).
Масиви просторових координати xі , yі , zі , вершин шуканої лінії перетину знайдемо підстановкою uі та vі, у рівняння (1.125).
Приклади програмної реалізації наведеного алгоритму показано на рис.1.14-1.16. В ізометричній проекції подано правильну дванадцятигранну призму, висота якої 12 см, радіус описаного циліндра 5см, а кутовий параметр однієї з вершин нижньої основи становить 0,13 рад. ІІризму перетинає прощина
Використовуючи замість (1.85) рівняння сім’ї площин (1,86), матимемо алгоритм побудови лінії перетину правильної піраміди та площини. На рис.1.117 подано ізометричну проекцію правильної дванадцятигранної піраміди, висота якої 12 см, кут між бічною гранню і висотою 0,35 рад, а кутовий параметр основи вершин основи становить 0.26 рад. Піраміду перетинає площина
.
В алгоритмі розв'язання позиційних задач на перетин прямої чи кривої лінії поверхнею, площини з поверхнею та взаємний перетин двох поверхонь передбачається розв'язання системи рівнянь заданих геометричних образів. Алгоритм грунтується на ідеї належності точки до внутрішності чи зовнішності поверхні.
Якщо лінія та поверхня задні в одній системі координат, то завжди можна застосувати один з двох алгоритмів (площинний чи просторовий) визначення належності будь-якої точки внутрішності чи зовнішності поверхні.
Площинний алгоритм. Позначимо функціональний параметр рівняння лінії через s. Нехай розв'язок лежить в інтервалі s1<s<s2. Визначимо координати x, y, z точки М, що відповідає значенню
. (1.127)
Обчислимо значення спеціальних координат u, v, t у системі, до якої віднесено поверхню. Підставляючи значення t у внутрішнє рівняння поверхні, дістанемо ріння лінії рівня t=const цієї поверхні. Скориставшись формулами та враховуючи, що роль x і у відіграють u і v відповідно, визначимо належність точки М до внутрішності чи зовнішності лінії рівня t = соnst заданої поверхні.
Якщо точка М належить до зовнішності лінії рівня, то функціональний параметр наступної довільної точки М визначаємо за формулою (1.127). надаючи s1 значення sM. Якщо точка M належить до внутрішності, то значення sM надаємо s2. Ітераційний процес продовжуємо доти, доки виконується умова , де e визначає наперед задану точність.
Значення функціонального параметра довільної точки, при якому виконується ця умова, треба підставити в рівняння лінії, щоб дістати просторові координаті x, y, z шуканої точки перетину.
Просторовий алгоритм. Для поверхонь другого порядку (1.119). (1.122) при розгляді питання про належність довільної точки до внутрішності чи зовнішності поверхні не обов'язково переходити до рівняння лінії ріння цієї поверхні. Досить підставити координати x, y, z довільної точки в рівняння (1.119) або (1.122). Якщо знак "=" - змінюється на знак “>” , то довільна точка належить до зовнішності, якщо на знак " < ", то до внутрішності поверхні.
Просторовий алгоритм більше нічим не відрізняється від площинного.
Якщо поверхня перетинається площиною чи іншою поверхнею, то до алгоритму додасться визначення на площині чи на поверхні сім'ї ліній рівня. Розв'язок шукають для кожної лінії, а масиви координат точок перетину впорядковують згідно із зростанням чи спаданням значення параметра сім'ї.Візуалізація ліній та поверхонь
Геометричну модель відображення лінії чи поверхні засобами комп'ютерної графіки дістають методом проекцювання та сполучення точок, які лежать на лінії, впорядкованих відповідно із зростанням або спаданням значення функціонального параметра. Вхідні дані у вигляді рівняння лінії та інтервалу значень функціонального параметра дають змогу обчислити координати x, y, z послідовності точок.
Щодо візуалізації поверхні, то проекції відтворюють деякі характерні для поверхні лінії: ребра багатогранників, лінії, обвідну проекції кривої поверхні, межі відсіку поверхні. Ефективний спосіб візуалізації кривої поверхні полягає в попередньому визначенні на поверхні сім'ї або сітки координатних ліній та відображенні на проекції видимих відрізків (рис.1.17 …рис.1.22 ) та відповідно для прямокутних ізометрії, диметрії та косокутної диметрії.
Точкове відображення простору на фронтальну площину проекцій визначено формулами
, (1.128)
а на горизонтальну площину проекцій — формулами
. (1.129)
Визначення лінії, обвідної проекції поверхні. Нехай поверхня задана в параметричній формі:
(1.130)
Як було показано, явна форма задання поверхні є окремим випадком задання у формі (1.130). До форми (1.130) приводить також задання поверхні внутрішнім рівнянням у спеціальних координатах.
Застосовуючи формули відповідного точкового перетворення простору при проекціюванні, можна записати
. (1.131)
де х, у -- прямокутні декартові координати проекцій точок; f,j — функції, що реалізують ланцюжок —одну з функцій -- (1.128), (1.129).
Проаналізувавши вирази (1.131), дійдемо висновку, що ці рівняння відповідають
рінянням двох сімей ліній u=const, t=const Кожна сім'я залежить від одного параметра. Як відомо, такі сім'ї мають обвідну, рівняння якої
. (1.132)
Обвідна (1.132) поділяє точки на поверхні (1.130) на два класи, що визначаються знаком нерівності, в яку перетворюється ліва частина (1.132) після підстановки внутрішніх координат u, t довільної точки на поверхні. Отже, в результаті підстановки внутрішніх координат u, t точки на поверхні ліву частину (1.132) дістанемо один з трьох випадків:
І=0, (1.133)
коли точка належить обвідній. За цієї умови можна скласти рівняння обвідної і побудувати її:
І>0, (1.134)
коли точка є видимою на проекції;
І<0, (1.135)
коли точка невидима на проекції.
Випадок (1.134) або (1.135) завжди можна дістати множенням лівої частини (1.132) на -1.
Підкреслимо, що тут ідеться про потенціальну видимість, тобто не враховується випадок, коли інша поверхня закринає собою розглядувану поверхню при проекціюванні.
У табл. 1.1 наведено приклади застосування форм задання та алгоритму визначення видимості найпоширеніших поверхонь.
Для більшої наочності на поверхнях відтворено сітку координатних ліній, завдяки застосуванню алгоритму визначення видимості на проекціях відтворена зовнішність поверхні, а для таких поверхонь, як параболоїд, катеноїд, псевдосфера відтворена також їхня внутрішність, яку видно крізь отвір. В цьому разі контур отвору с нерухомим екраном, що обмежує видиму внутрішність поверхні.
Поверхня | № Рис. | Внунтрішнє рівняння | Вираз І в рівнянні (1.32) |
Циліндр | U=0 |
| |
Конус | u=0 |
| |
Елыпсоїд |
|
| |
Гелікоїдальний циліндр |
|
| |
Циклічна G-поверхня |
|
|
Щодо побудови проекції обвидної, то в багатьох випадках це можна зробити, розв'язуючи рівняння (1.123) відносно однієї з дих змінних. Так для циліндра та конуса