Съставни криви от елементи на безие



Дата12.03.2018
Размер23.36 Kb.
#62622
СЪСТАВНИ КРИВИ ОТ ЕЛЕМЕНТИ НА БЕЗИЕ


Кривите на Безие са създадени за образуване на съставна крива. Първото изискване за непрекъснатост на самата крива (С0-непрекъснатост) се задава с:

за непрекъснатостта на наклона на първата производна на кривата (С1-непрекъснатост), е необходимо да е изпълнено:



където k0 и k1 са дължините да допирателните вектори в съвпадащите краища, които в общия случай могат да имат различни стойности. От горните две равенства следва, че точките r2(1), r3(1) = r0(2) и r1(2) трябва да лежат на една права.


Много често кривите на Безие се използват, като се задават интерактивно всички точки, управляващи сегментите, а дали ще има и каква непрекъснатост се контролира единствено от положението на точките r1(i) и r2(i) през които кривата не минава. При зададена характеристична начупена с точките Р[i], i = 0,1,…,n следната функция ще визуализира кривата при подходящо избрана стойност на стъпката step. Очевидно е, че броят на точките не е произволен, а именно n= 3k+1, където k е броят на сегментите.

За да намалим броя на умноженията в програмата за чертане на един сегмент от кривата, използваме правилото на Хорнер за пресмятане на стойността на полином в точка:



За постигане на С1-непрекъснатост независимо от задаваните данни (при положение, разбира се, че се изключва наличието на съвпадащи съседни характеристични точки) може входният масив да съдържа само точки, съответстващи на r1(i) и r2(i), а за точките r0(i) и r3(i-1) да се смята че лежат на средата на отсечките |r1(i) – r2(i-1)| т.е. да се приеме, че k0 = k1. С това естествено ще се намалят степените на свобода на кривата.



Броят на задаваните точки в този случай трябва да е четен: n = 2k+2, където k отново е броят на сегментите.

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

Тогава ще получим:



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



където c е произволен скалар. Като елиминираме r1(2) и като положим λ=k1/k0, μ=3c/k0, ще получим:



С това успяхме да изразим точките на характеристичната начупена на втория сегмент чрез тези на първия, а именно:



Тези две уравнения имат следния геометричен смисъл. За да има непрекъснатост на кривината е необходимо:



  1. Точките r2(1), r3(1) = r0(2) и r1(2) да са колинеарни;

  2. Точката r2(2) да лежи на правата, носеща вектора r3(1) – r2(1) и минаваща през точката Р = r3(1)+ λ 2(r1(1) – r1(2)).

От дефиницията се вижда, че точките r2(2) и Р трябва да лежат в тази полуравнина спрямо правата, определена от r2(1), r3(1) = r0(2) и r1(2) в която лежи и r1(2).



Сега можем да построим съставната крива, започвайки от първия сегмент, като всеки, следващ се задава с крайните си точки й въведените два скалара. Коефициентите λ и μ са степените на свобода на всеки сегмент от кривата. Точката r3(2) може да се избере произволно.


Сподели с приятели:




©obuch.info 2022
отнасят до администрацията

    Начална страница