- •Http://antibotan.Com/ - Всеукраїнський студентський архів розділ 1. Координатні перетворення та проекції
- •1.1. Афінна геометрія
- •1.1.1. Афінні перетворення точок у просторі
- •1.1.2. Перетворення ліній та площин у просторі
- •1.2. Перспективно-проекційна геометрія
- •1.2.1. Однорідні координати
- •1.2.2. Проектування тривимірних об’єктів
- •1.2.3. Паралельні проекції
- •1.2.4. Центральні проекції
- •1.2.5. Неозначені точки
- •1.2.6. Одноточкова перспективна проекція
- •1.2.7. Двоточкова перспективна проекція
- •1.2.8. Триточкова перспективна проекція
- •Розділ 2. Просторові криві
- •2.1. Геометрія просторових кривих
- •2.1.1. Параметричне і непараметричне зображення кривих
- •2.1.2. Дотична, головна нормаль і бінормаль до кривої
- •2.1.3. Кривина, закручування кривої та формули Френе
- •2.2. Побудова плоских кривих
- •2.2.1. Конічні переріз
- •2.2.2. Трансцендентні криві
- •2.3. Кубічні сплайни
- •2.3.1. Сплайнова функція однієї змінної
- •2.3.2. Сплайнова функція в тривимірному випадку
- •Дослідження гладкості кривої
- •2.3.4. Граничні умови
- •2.4. Кубічні сплайни Без’є
- •2.5. Базис Бернштейна-Без’є
- •2.5.1. Геометричні властивості поліномів Бернштейна
- •2.5.2. Часткові випадки
- •2.6. Апроксимація на основі b-сплайнів
- •2.6.1. Головні властивості b-сплайнів
- •2.6.2. Базисні функції
- •2.6.3. Вузловий вектор
- •2.6.4. Приклади застосування b-сплайнів
- •2.7. Раціональні криві
- •2.7.1. Головні принципи раціональних кривих
- •2.7.2. Раціональні квадратичні сегменти конічного перерізу
- •2.7.3. Раціональні криві Без’є
- •Розділ 3. Опис і побудова поверхонь
- •3.1. Геометрія поверхонь
- •3.1.1.Поняття поверхні, дотична площина до поверхні
- •3.1.2. Перша квадратична форма
- •3.1.3. Друга квадратична форма поверхні
- •3.1.4. Нормальна кривина поверхні
- •3.1.5. Перетворення параметрів поверхні
- •3.2. Утворення і зображення поверхонь
- •3.2.1. Класифікація поверхонь
- •3.2.2. Лінійчаті поверхні
- •3.3. Поверхні Без’є
- •3.3.1. Параметричне рівняння поверхні Без’є
- •3.3.2. Властивості ділянок поверхні Без’є
- •3.4.1. Параметричні рівняння ділянок в-сплайн поверхні
- •3.4.2. Властивості ділянок бікубічних в-сплайнповерхонь
- •Розділ 4. Теоретичні основи та головні алгоритми растрової графіки
- •4.1. Створення базових геометричних форм
- •4.1.1. Пікселі
- •4.1.2. Рисування ліній
- •Input (x1,y1),(x2,y2)
- •4.1.3. Побудова кола
- •Input (r)
- •4.1.4. Побудова еліпса
- •4.2. Вирізання
- •4.2.1. Алгоритм серединної точки
- •4.15. Лінії до вирізання 4.16. Лінії після обрізання
- •4.2.2. Алгоритм Коена-Сазерленда
- •4.2.3. Алгоритм Лянга - Барського
- •4.3 Вирізання областей
- •4.3.1. Базовий матеріал
- •4.3.2. Алгоритм Сазерленда - Ходгмана
- •4.3.3. Алгоритми Сазерленда-Ходгмана вирізання поверхонь
- •Розділ 5. Застосування пакетів matlab у компютерній графіці
- •5.1. Головні відомості про matlab
- •5.1.1. Інтерфейс Matlab
- •5.1.2. Програмування в Matlab
- •If умова
- •5.1.3. Створення і застосування м-файлів
- •5.1.4. Робота з матрицями
- •5.2. Графіка в Matlab
- •5.2.1. Визначення точки споглядання
- •5.2.2. Об'єкти дескрипторної графіки
- •5.2.3. Побудова графіків. Команди Plot, Plot3
- •5.2.4 Примітиви
- •View(3); % 11
- •5.2.5. Алгоритми для примітивів
- •Image(x1,y,colour) % Lighting pixel
- •Image(X,y1,colour) % Lighting pixel
- •Image(X,y,colour) % Lighting pixel
- •Image(X,y-2*I,colour) % Lighting pixel
- •Image(X,y,colour) % Lighting pixel
- •Image(X-2*I,y,colour) % Lighting pixel
- •5.3. Перетворення
- •5.3.1. Геометричні перетворення
- •View(3);
- •5.3.2. Проекції тривимірного простору в
- •View(0,90);
- •View(3)
- •5.4. Вирізання
- •5.4.1. Алгоритми вирізання
- •5.4.2. Інші підходи
- •5.5. Зображення плоских кривих
- •5.5.1. Команда spline
- •5.5.2. Команда pchip
- •Список літератури
- •Покажчик
4.3.2. Алгоритм Сазерленда - Ходгмана
За допомогою цього алгоритму
можна виконати вирізання будь-яким
багатокутником (опуклим чи ні). Для
застосування цього алгоритму треба
мати багатокутник з вершинами
і опукле додатно визначене вікно зі
сторонами
.
Виберемо одну з граней вікна, наприклад
Ε (з вершинами ΑΒ),
а потім повторимо цей процес для всіх
меж вікна. Дослідимо розташування кожної
зі сторін
відносно Ε
так. Нехай
є
стороною, яку досліджуємо:
якщо
,
є ліворуч від ΑΒ
записуємо в список вихідних даних
вершину
(рис. 4.25,а)
а б
Рис. 4.25. Сторони , розташовані по один бік від ΑΒ
якщо і праворуч, то нічого не заносимо у список (рис.4.26,б);
а) б)
Рис.4. 26. Сторони , розташовані по різні боки від ΑΒ
якщо є ліворуч, а праворуч, то обчислюють точку перетину Ι, яку вводять у список вихідних даних (рис.4.26,а).
якщо праворуч, а ліворуч, то обчислюють точку перетину Ι. В список вихідних даних уводять точки Ι і (рис.4.26.б).
Алгоритм повторюють для кожного боук вікна вирізання з урахуванням кожного разу багатокутника з попереднього кроку.
4.3.3. Алгоритми Сазерленда-Ходгмана вирізання поверхонь
Поверхні часто рисують по їхньому периметру, який можна наблизити багатокутником. У випадку коли багатокутник складається з багатьох ланок, треба вирізати кожну з ланок як це зображено на рис.4.27.
Рис. 4.27. Вирізання багатокутником
Поверхні можна успішно вирізати по кожній з граничних ліній (ліній, які розділяють дві півплощини) опуклого вікна. Для цього треба створити таку вхідну інформацію:
список сторін поверхні, які маємо намір вирізати;
лінії, згідно з якими відбуватиметься вирізання.
На кожному кроці вирізання відбувається два процеси.
1. Для кожної
досліджують чи вона видима відносно
лінії. Видимі точки заносяться в список
вихідних даних.
2. Одночасно досліджується,
чи точка
є по той самий бік, що і точка
.
Якщо ні, то обчислюється точка перетину
відрізка
зі стороною e,
і ця точка також з аноситься в список
вихідних даних.
Алгоритм Сазерленда - Ходмана
:= перша точка периметра
Q :=
Повторити
Якщо Q видима відносно (е)
Q занести в список вихідних даних
End
P := наступна Q вершина периметра
Якщо QP перетинає (е)
Обчислюємо точку перетину Τ
Τ занести в список вихідних даних
Q := P
Кінець
Алгоритм працює, поки всі вершини не буде переглянуто.
Наприклад. Задано багатокутник
,…,
,
який треба відрізати по лінії ε (рис.4.28).
В таблиці 4.8. подані точки перетину
Рис. 4.28. Вирізання багатокутника по лінії ε
Таблиця 4.1. Визначення точок перетину
|
Q |
P |
Точки перетину |
Результат |
1 |
1 |
|
|
1 |
|
|
2 |
2’ |
2’ |
|
2 |
3 |
|
|
|
3 |
4 |
4’ |
4’ |
|
4 |
|
|
4 |
|
|
5 |
|
|
|
5 |
|
|
5 |
|
|
6 |
6’ |
6’ |
|
6 |
7 |
|
|
|
7 |
8 |
8’ |
8’ |
|
8 |
|
|
8 |
