Главная Случайная страница


Полезное:

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


Категории:

АрхитектураАстрономияБиологияГеографияГеологияИнформатикаИскусствоИсторияКулинарияКультураМаркетингМатематикаМедицинаМенеджментОхрана трудаПравоПроизводствоПсихологияРелигияСоциологияСпортТехникаФизикаФилософияХимияЭкологияЭкономикаЭлектроника






Крива Без’є





Вперше криві були представлені широкій публіці в 1962 році французьким інженером П'єром Без'є, який, розробивши незалежно від де Кастельє, використовував їх для комп'ютерного проектування автомобільних кузовів. Криві були названі ім'ям Без’є, а ім'ям де Кастельє названо розроблений ним рекурсивний спосіб визначення кривих (алгоритм де Кастельє).

Згодом це відкриття стало одним з найважливіших інструментів систем автоматизованого проектування та програм комп'ютерної графіки.

Крива Без’є – основа векторної графіки. Застосування кривої Беє’є є досить широким: спосіб управління рухом, засіб створення анімаційних рисунків, метод опису художніх шрифтів, спосіб передачі виділених об’єктів, інтерактивний інструмент дизайну форми різноманітних об’єктів.

У багатьох методах побудови тривимірних кривих отримувана крива проходить через всі задані точки, тобто ці методи є методами інтерполяції. В багатьох випадках вони дозволяють отримати добрі результати. Але ці методи мають ряд недоліків, що роблять їх малопридатними для систем побудови кривих в діалоговому режимі. Це пояснюється тим, що задання форми кривої з допомогою таких числових характеристик, як напрямок і модуль дотичних векторів, не забезпечує інтуїтивного відчуття правильності побудови кривої, тобто не завжди існує очевидний зв’язок між числами і формою кривої. Крім того, методи підгонки тривимірними кривими в результаті дають криву одного і того самого порядку, який не змінюється. Для того, щоб збільшити кривизну, потрібно вводити більшу кількість точок.

Без’є розробив інший метод зображення кривої, який створює у користувача більш природнє сприйняття. Крива Без’є визначається вершинами багатокутника, який задає форму кривої. Кривій належить перша та остання вершина, в той час як інші вершини характеризують похідні, порядок та вид кривої. Таким чином, крива задається з допомогою відкритого багатокутника (ламаної) сформованого заданими точками, як показано на рис 1.

Рис 1. Приклади кривих Без’є

 

Так як вигляд кривої залежить від форми багатокутника, то зміна положення вершин цього багатокутника створює у користувача значно більше явного відчуття сприймання зв’язку між входом і виходом. Для того щоб збільшити порядок будь-якого криволінійного сегменту, потрібно тільки задати додаткові вершини. Така методика відрізняється значною гнучкістю і позбавлена багатьох недоліків підгонки кубічними сплайнами і параболічної інтерполяцїї.

Крива Без’є – параметрична крива, що задається виразом:

.

n – степінь полінома, який характеризується n+1 вершинами,

i – порядковий номер вершини,

– функція компонент векторів опорних вершин,

– базисні функції кривої Без'є, названі також поліномами Бернштейна.

,

.

Точки Р 0, Рn називаються кінцевими, а точки Р 1 ,...,Рn -1 контрольними,

Ламана P 0 P 1 … Pn називається к онтрольною (опорною).

Властивості многочленів Бернштейна суттєво впливають на поведінку кривих Без’є. Наведемо деякі з них:

1. Многочлени Бернштейна набувають невід’ємних значень.

2. В сумі вони дають одиницю.

3. Не залежать від вершин масиву P, а залежать лише від кількості точок у масиві.

 

Приклад 1. Чотири опорні точки P0, P1, P2 і P3, задані в 2-вимірному просторі визначають форму кривої.

Лінія бере початок з точки P0 прямуючи до P1 і закінчується в точці P3, підходячи до неї з боку P2. Тобто крива не проходить через точки P1 і P2, вони використовуються для вказівки її напрямків. Довжина відрізка між P0 і P1 визначає, як швидко крива поверне до P3.

Рис.2. Крива Без’є третього степеня

 

У матричній формі кубічна крива Без’є записується таким чином:

 

.

 

Також існує рекурсивна формула побудови кривих Без'є:

У процесі інтерактивного конструювання ламана Без’є є засобом управління формою. Ефективність методу обумовлена такими властивостями кривих Без’є:

1) Порядок точок у масиві Р суттєво впливає на вигляд кривої Без’є.

2) Форма кривої Без’є повторює хід ламаної P 0 P 1Pn. При зміні порядку точок повністю змінюється форма кривої.

Рис.3 Кубічні криві Без’є при зміні порядку точок

 

3) Перша та остання точки кривої збігаються з відповідними точками масиву P, тобто B (0) = P 0, B (1) = Pn. Всі інші вершини ламаної в загальному випадку знаходяться поза кривою.

4) Нахил дотичних векторів в крайніх точках кривої співпадає з нахилом, відповідно першої та останньої ланки ламаної Без’є.

5) У рівнянні, що описує елементарну криву Без’є, немає вільних параметрів, тобто заданий масив однозначно визначає криву Без’є. Тому немає можливостей якимось чином впливати на форму кривої Без’є.

6) Крива Без’є інваріантна відносно афінних перетворень. Тобто побудувавши криву Без’є, над нею можна здійснити афінні перетворення, а можна вчинити інакше: спочатку здійснити афінні перетворення над опорними вершинами, а потім побудувати криву Без’є на нових вершинах. Якщо результати будуть однаковими, то кажуть, що крива є інваріантною відносно цього афінного перетворення. При цьому легко помітити, наприклад, що поворот опорних вершин і подальша побудова кривої займає менше часу, ніж поворот самої кривої. Нагадаємо, що афінні перетворення включають у себе поворот, розтягування/стиск, паралельне перенесення та їх можливі комбінації.

7) Крива Без’є лежить в опуклій оболонці вершин масиву P.

Змістовно многочлен Без’є можна представити як деяку намагнічену еластичну стрічку, закріплену в першій і останній точках. Стрічка притягується до кожної точки, причому чим вище напруженність магнітного поля в точках, тим ближче буде притягнута до них. При прямуванні кратності до нескінченості многочлен Без’є прямує до ламаної кривої, точками спряження для якої служать точки орієнтири.

Практичне конструювання кривих за методом Без’є є евристичною процедурою. Спочатку конструктор вручну накидує бажану криву. Пізніше він вказує вершини ламаної Без’є, яка на його думку, створить перше наближення до необхідної кривої. Наступним кроком є пересування вершин таким чином, щоб поступово покращити співпадання чи наближення. Якщо необхідно, деякі вершини викидаються або додаються нові.

Поряд з перевагами, криві Без’є мають і ряд недоліків:

1. Степінь функціональних поліномів напряму залежить від кількості точок у заданому векторі. Степінь многочлена B (t), що визначає криву Без’є, на одиницю менший від кількості точок масиву, тобто крива Без’є побудована на n +1 точці задається многочленом степеня n.

2. Якщо в масив P додати хоча б одну вершину, то необхідно повністю перерахувати параметричні рівняння кривої Без’є

3. Зміна хоча б однієї точки в масиві P приводить до помітної зміни всієї кривої Без’є.

 

Незважаючи на недоліки, крива Без’є є зручною до використання в задачах комп’ютерної графіки, оскільки формула є достатньо простою з точки зору математичних обчислень, універсальною з точки зору програмування, геометрично наглядною з точки зору користувача – художника, дизайнера, проектувальника.

 

Приклад 2. Побудова кривої Без’є.

 

Р0 =[1,1],

Р1 =[2,3],

Р2 =[4,3],

P3 =[3,1] є вершини багатокутника.

Date: 2015-10-18; view: 950; Нарушение авторских прав; Помощь в написании работы --> СЮДА...



mydocx.ru - 2015-2024 year. (0.007 sec.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав - Пожаловаться на публикацию