Криві Безьє. Основні поняття та властивості кривих Безьє

Векторні зображення складаються з контурів. Контури складаються із сегментів, обмежених вузлами. З декількох таких сегментів можна скласти, практично, будь-яку фігуру. Для опису контурів у програмах векторної графіки застосовують розроблені французьким математиком П'єром Безьє параметричні поліноміальні криві. Відмітимо, що криві та поверхні Безьє були використані у шістдесятих роках компанією «Рено» для комп'ютерного проектування форми кузовів автомобілів. На сьогодні вони широко використовуються в комп'ютерній графіці, автоматизованих системах управління виробництвом тощо. Квадратичні криві Безьє використовуються в шрифтах TrueType.

За заданим масивом вершин крива Безьє степеня визначається за формулою:

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

На рисунку що міститься нижче, зображено графіки вагових коефіцієнтів  кривої Безьє при .

Вагові функції Безьє-Берштейна при m = 3

Зауваження: деякі з властивостей поліномів Берштейна суттєво впливають на поведінку кривих Безьє. Наведемо основні з них: многочлени Бернштейна набувають невід'ємних значень; в сумі многочлени Берштейна дають одиницю, тобто для них виконується умова (2); поліноми Берштейна не залежать від вершин масиву , а залежать лише від кількості точок у ньому.

Читати повністю

Крива Гільберта. Побудова кривої Гільберта за допомогою рекурсії

У 1890 році італійський математик Джузеппе Пеано відкрив плоску криву з дивовижною властивістю заповнення простору: крива заповнювала одиничний квадрат і проходила через кожну його точку щонайменше один раз.

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

У 1891 році німецький математик Давид Гільберт відкрив варіант кривої Пеано, який базується на розподілі кожної з сторін одиничного квадрата на дві рівні частини, що ділить квадрат на чотири менші частини. Після цього, кожен з чотирьох одержаних квадратів, в свою чергу, ділиться на чотири менших квадрата і так далі. Зазначимо, що на кожній стадії такого поділу Гільберт будував криву, яка обходила всі наявні квадрати. Крива Гільберта (яку іноді називають кривою Пеано-Гільберта) являє собою граничну криву, отриману в результаті такої побудови.

Читати повністю

Поняття фрактала. Крива Коха та алгоритм її побудови

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

Слово фрактал походить від латинського fractus і в перекладі означає «cкладений із фрагментів». Цей термін запропонований французько-американським математиком Бенуа Мандельбротом у 1975 році для позначення самоподібних структур.

У комп'ютерній графіці використовують таке означення фрактала: фракталом називається геометрична фігура, яка складається з частин, які в певному розумінні подібні за формою на всю фігуру, тобто це геометрична фігура, в якій один і той самий фрагмент повторюється при кожному зменшенні масштабу (частина об'єкта схожа на сам об'єкт). Тобто, характерною рисою фрактала є самоподібність відносно масштабу (наприклад, гірський камінь має такі ж обриси, як і гірський хребет).

Читати повністю

Растеризація кола використовуючи алгоритм Брезенхема

У параграфі растеризація відрізка за алгоритмом Брезенхема було розглянуто один з найвідоміших і найбільш викокористовуваних алгоритмів комп'ютерної графіки, призначених для розкладання відрізка в растр. Сьогодні розглянемо найбільш ефективний і простий для розуміння алгоритм генерації більш складної геометричної фігури, а саме кола, який також належить Брезенхему. Для початку зауважимо, що згідно з цим алгоритмом, достатньо згенерувати тільки одну четверту чи навіть одну восьму частину кола. Інші його частини можуть бути отримані послідовними відображеннями, як це показано на насутпному малюнку.

algorytm_brezenhema_dlja_kola85

Генерація повного кола з дуги в першому октанті

Тобто, якщо згенерований перший октант (від до проти годинникової стрілки), то другий октант можна отримати дзеркальним відображенням відносно прямої , що дає в сукупності перший квадрант. Перший квадрант відбивається відносно прямої для отримання відповідної частини кола в другому квадранті. Верхнє півколо відбивається відносно прямої для завершення побудови. Відмітимо, що на рисунку наведені двовимірні матриці відповідних перетворень.

Читати повністю

Растеризація відрізка використовуючи алгоритм Брезенхема

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

Читати повністю

Розкладання відрізка в растр використовуючи цифровий диференціальний аналізатор

Звичайні графічні зображення, з якими стикається людина в своїй діяльності (креслення, графіки, карти, художні картини і таке інше), реалізовані на площині, яка є нескінченною і безперервною множиною точок. Більшість же графічних пристроїв є растровими, тобто представляють зображення у вигляді растра — прямокутної матриці елементів зображення (пікселів). Саме таким пристроєм і є відеомонітор (дисплей). Пікселі на екрані дисплея мають кінцеві фізичні розміри, і їх кількість обмежена. Растр, таким чином, являє собою скінченну дискретну множину точок. Тому відтворення зображення на екрані дисплея (або на іншому растровому пристрої) вимагає виконання певних апроксимаційних процедур і неминуче пов'язане з втратами. Відображення будь-якого об'єкта на цілочисельну сітку називається розкладанням його в растр або просто растровим представленням.

Читати повністю