1
CurvesCurves
Галинский В.А.Физико-математический лицей № 30
Computer Graphics Support Group
Кривые и поверхности
в компьютерной графике
URL: http://www.school30.spb.ru/cgsg/cgc/
E-mail: [email protected]
2
CurvesCurves
Галинский В.А.Физико-математический лицей № 30
Computer Graphics Support Group
Представления кривых на плоскости
• явный способ (explicit curves)
• неявный способ (implicit)
• Параметрический способ (parametric curves)
3
CurvesCurves
Галинский В.А.Физико-математический лицей № 30
Computer Graphics Support Group
Явные кривые
4
CurvesCurves
Галинский В.А.Физико-математический лицей № 30
Computer Graphics Support Group
Неявные кривые
5
CurvesCurves
Галинский В.А.Физико-математический лицей № 30
Computer Graphics Support Group
Параметрические кртвые
7
CurvesCurves
Галинский В.А.Физико-математический лицей № 30
Computer Graphics Support Group
Кривые Безье (Pierre Bézier): линейные
• Линейные кривые Безье• Линейная интерполяция между концевыми точками
8
CurvesCurves
Галинский В.А.Физико-математический лицей № 30
Computer Graphics Support Group
Кривые Безье: квадратичные
• Квадратичные кривые Безье• Композиция нескольких линейных кривых:
9
CurvesCurves
Галинский В.А.Физико-математический лицей № 30
Computer Graphics Support Group
Кривые Безье: кубические
• Кубические кривые Безье
10
CurvesCurves
Галинский В.А.Физико-математический лицей № 30
Computer Graphics Support Group
Кривые Безье: старшие степени
• В общем случае:
полином Бернштейна
число Сочетаний
11
CurvesCurves
Галинский В.А.Физико-математический лицей № 30
Computer Graphics Support Group
Кубические кривые Безье: матричная запись
12
CurvesCurves
Галинский В.А.Физико-математический лицей № 30
Computer Graphics Support Group
Сопряжение кривых Безье
R0
P0 R2
R3
P1
P2 P3R1
P4 P5
P6
P7
13
CurvesCurves
Галинский В.А.Физико-математический лицей № 30
Computer Graphics Support Group
Интерполяция с помощью кривых Безье
• Сплайны Катмула-Рома:
P0
Q0 P2
P3
Q1
Q2 Q3P1
Q4 Q5
Q6
Q7
14
CurvesCurves
Галинский В.А.Физико-математический лицей № 30
Computer Graphics Support Group
Рациональные кривые Безье (rational)
w=(1, 1, 1, 1) w=(1, 1, 10, 1) w=(1, 30, 30, 1) w=(1, 1000, 1, 1)
15
CurvesCurves
Галинский В.А.Физико-математический лицей № 30
Computer Graphics Support Group
B-сплайны (B-splines)
• Кокс и де Бур:
полагаем
- узловой вектор
16
CurvesCurves
Галинский В.А.Физико-математический лицей № 30
Computer Graphics Support Group
Примеры B-сплайнов (кривая Безье)
• Кубическая кривая Безье:
17
CurvesCurves
Галинский В.А.Физико-математический лицей № 30
Computer Graphics Support Group
Примеры B-сплайнов (uniform)
• Униформный кубический B-spline
18
CurvesCurves
Галинский В.А.Физико-математический лицей № 30
Computer Graphics Support Group
Примеры B-сплайнов (nonuniform rational)
• NURBS
19
CurvesCurves
Галинский В.А.Физико-математический лицей № 30
Computer Graphics Support Group
Поверхности (surfaces)
• явный способ
• неявный способ
• параметрический способ
20
CurvesCurves
Галинский В.А.Физико-математический лицей № 30
Computer Graphics Support Group
Повехности Безье: билинейные
P00
P01
P11
P10
R0
R1
21
CurvesCurves
Галинский В.А.Физико-математический лицей № 30
Computer Graphics Support Group
Поверхность Кунса
• Граничные кривые:
• Билинейно смешиваем (учитывая повторение угловых точек):
22
CurvesCurves
Галинский В.А.Физико-математический лицей № 30
Computer Graphics Support Group
Поверхности Безье (общий случай)
23
CurvesCurves
Галинский В.А.Физико-математический лицей № 30
Computer Graphics Support Group
Бикубическая поверхность Безье
24
CurvesCurves
Галинский В.А.Физико-математический лицей № 30
Computer Graphics Support Group
Бикубическая поверхность Безье: сопряжение
25
CurvesCurves
Галинский В.А.Физико-математический лицей № 30
Computer Graphics Support Group
Бикубическая поверхность Безье: пример
26
CurvesCurves
Галинский В.А.Физико-математический лицей № 30
Computer Graphics Support Group
Общий случай бикубических поверхностей
uniform B-spline cubic Bezier Catmull-Rom
27
CurvesCurves
Галинский В.А.Физико-математический лицей № 30
Computer Graphics Support Group
Трикубические пространства: Free Form Deformation
28
CurvesCurves
Галинский В.А.Физико-математический лицей № 30
Computer Graphics Support Group
• Практические задания (до 13.11.2011)– Реализовать интерактивную среду демонстрации
параметрических кубических кривых (выполнять интерполяцию по нескольким точкам, использовать uniform B-spline и сплайн Катмула-Рома). Дополнительное задание: реализовать изменение весов точек и визуализацию рациональными кривыми.
– Реализовать интерактивную среду демонстрации FFD на плоскости для растрового изображения. Использовать биквадратную «сетку» (9 точек) Безье.
(
29
CurvesCurves
Галинский В.А.Физико-математический лицей № 30
Computer Graphics Support Group
Литература
• David F. Rodgers, J. van Adams. "Mathematical Elements for Computer Graphics", 2nd ed., McGraw-Hill Publishing Company, 1990.
• Alan Watt, Mark Watt. "Advanced Animation and Rendering Techniques. Theory and Practice", ACM Press, Addison-Wesley Longman Limited, 1992.
• Е.Шикин, А.Плис. "Кривые и поверхности на экране компьютера". Москва: Диалог-МИФИ, 1996.
• Е.В.Шикин, М.М.Франк-Каменецкий. "Кривые на плоскости и в пространстве". Москва: "ФАЗИС", 1997.