Intro CG @ NCSU
1
curves
2
3
4
why?
5
6
7
8
9
history
10
11
12
13
14
math!
15
P1
Q(t) = P1 + t(P2 - P1)
P2
16
Q(t) = P1 + t(P2 - P1)
t = 1
t = 0
17
Q(0)
Q(t) = P1 + t(P2 - P1)
Q(1)
Q(t)
18
Q(t) = t3 (a G1 + b G2 + c G3 + d G4 )
+ t2 (e G1 + f G2 + g G3 + h G4 )
+ t (i G1 + j G2 + k G3 + l G4 )
+ (m G1 + n G2 + o G3 + p G4 )
G4
G3
G1
G2
19
Q(t) = t3 (a G1 + b G2 + c G3 + d G4 )
+ t2 (e G1 + f G2 + g G3 + h G4 )
+ t (i G1 + j G2 + k G3 + l G4 )
+ (m G1 + n G2 + o G3 + p G4 )
t = 1
t = 0
20
Q(t) = t3 (a G1 + b G2 + c G3 + d G4 )
+ t2 (e G1 + f G2 + g G3 + h G4 )
+ t (i G1 + j G2 + k G3 + l G4 )
+ (m G1 + n G2 + o G3 + p G4 )
Q(1)
Q(0)
Q(t)
21
Q(t) = t3 (a G1 + b G2 + c G3 + d G4 )
+ t2 (e G1 + f G2 + g G3 + h G4 )
+ t (i G1 + j G2 + k G3 + l G4 )
+ 1 (m G1 + n G2 + o G3 + p G4 )
Q(t) = T M G
22
Q(t) = T M G
geometry vector
G4
G3
G1
G2
G1
G2
G3
G4
23
Q(t) = T M G
basis matrix
a b c d
e f g h
i j k l
m n o p
G1
G2
G3
G4
24
Q(t) = T M G
(bezier) basis matrix
-1 3 -3 1
3 -6 3 0
-3 3 0 0
1 0 0 0
G1
G2
G3
G4
t
geom weight
25
Q(t) = T M G
parameter vector
a b c d
e f g h
i j k l
m n o p
G1
G2
G3
G4
t3 t2 t 1
t = 1
t = 0
26
control
27
28
locality
bad locality
high order curve
good locality
b-spline
29
locality
... #reordering
30
join continuity
C1
same
loc & slope
C0
same
location
C2
same
loc, slope, 2nd deriv
31
join continuity
32
convex hull
33
convex hull
34
interpolate vs approximate
35
interpolate vs approximate
36
transform invariance
37
38
types
39
Hermite
40
Hermite
41
Hermite
| locality | continuity | convex hull | invariance | interpolation |
Hermite | | | | | |
| | | | | |
| | | | | |
| | | | | |
42
Hermite
| locality | continuity | convex hull | invariance | interpolation |
Hermite | ✗ | | | | |
| | | | | |
| | | | | |
| | | | | |
43
Hermite
| locality | continuity | convex hull | invariance | interpolation |
Hermite | ✗ | ✗ | | | |
| | | | | |
| | | | | |
| | | | | |
44
Hermite
| locality | continuity | convex hull | invariance | interpolation |
Hermite | ✗ | ✗ | ✗ | | |
| | | | | |
| | | | | |
| | | | | |
45
Hermite
| locality | continuity | convex hull | invariance | interpolation |
Hermite | ✗ | ✗ | ✗ | affine | |
| | | | | |
| | | | | |
| | | | | |
46
Hermite
| locality | continuity | convex hull | invariance | interpolation |
Hermite | ✗ | ✗ | ✗ | affine | endpoints |
| | | | | |
| | | | | |
| | | | | |
47
Bezier
48
Bezier
49
Bezier
| locality | continuity | convex hull | invariance | interpolation |
Hermite | ✗ | ✗ | ✗ | affine | endpoints |
Bezier | ✗ | | | | |
| | | | | |
| | | | | |
| | | | | |
50
Bezier
| locality | continuity | convex hull | invariance | interpolation |
Hermite | ✗ | ✗ | ✗ | affine | endpoints |
Bezier | ✗ | ✗ | | | |
| | | | | |
| | | | | |
| | | | | |
51
Bezier
| locality | continuity | convex hull | invariance | interpolation |
Hermite | ✗ | ✗ | ✗ | affine | endpoints |
Bezier | ✗ | ✗ | ✓ | | |
| | | | | |
| | | | | |
| | | | | |
52
Bezier
| locality | continuity | convex hull | invariance | interpolation |
Hermite | ✗ | ✗ | ✗ | affine | endpoints |
Bezier | ✗ | ✗ | ✓ | affine | |
| | | | | |
| | | | | |
| | | | | |
53
Bezier
| locality | continuity | convex hull | invariance | interpolation |
Hermite | ✗ | ✗ | ✗ | affine | endpoints |
Bezier | ✗ | ✗ | ✓ | affine | endpoints |
| | | | | |
| | | | | |
| | | | | |
54
cardinal
55
cardinal
56
cardinal
57
cardinal
| locality | continuity | convex hull | invariance | interpolation |
Hermite | ✗ | ✗ | ✗ | affine | endpoints |
Bezier | ✗ | ✗ | ✓ | affine | endpoints |
cardinal | ✓ | | | | |
| | | | | |
| | | | | |
58
cardinal
| locality | continuity | convex hull | invariance | interpolation |
Hermite | ✗ | ✗ | ✗ | affine | endpoints |
Bezier | ✗ | ✗ | ✓ | affine | endpoints |
cardinal | ✓ | C1 | | | |
| | | | | |
| | | | | |
| | | | | |
59
cardinal
| locality | continuity | convex hull | invariance | interpolation |
Hermite | ✗ | ✗ | ✗ | affine | endpoints |
Bezier | ✗ | ✗ | ✓ | affine | endpoints |
cardinal | ✓ | C1 | ✗ | | |
| | | | | |
| | | | | |
| | | | | |
60
cardinal
| locality | continuity | convex hull | invariance | interpolation |
Hermite | ✗ | ✗ | ✗ | affine | endpoints |
Bezier | ✗ | ✗ | ✓ | affine | endpoints |
cardinal | ✓ | C1 | ✗ | affine | |
| | | | | |
| | | | | |
| | | | | |
61
cardinal
| locality | continuity | convex hull | invariance | interpolation |
Hermite | ✗ | ✗ | ✗ | affine | endpoints |
Bezier | ✗ | ✗ | ✓ | affine | endpoints |
cardinal | ✓ | C1 | ✗ | affine | ✓ |
| | | | | |
| | | | | |
62
B-spline
63
B-spline
64
B-spline
| locality | continuity | convex hull | invariance | interpolation |
Hermite | ✗ | ✗ | ✗ | affine | endpoints |
Bezier | ✗ | ✗ | ✓ | affine | endpoints |
cardinal | ✓ | C1 | ✗ | affine | ✓ |
B-spline | ✓ | | | | |
| | | | | |
| | | | | |
65
B-spline
| locality | continuity | convex hull | invariance | interpolation |
Hermite | ✗ | ✗ | ✗ | affine | endpoints |
Bezier | ✗ | ✗ | ✓ | affine | endpoints |
cardinal | ✓ | C1 | ✗ | affine | ✓ |
B-spline | ✓ | C2 | | | |
| | | | | |
| | | | | |
66
B-spline
| locality | continuity | convex hull | invariance | interpolation |
Hermite | ✗ | ✗ | ✗ | affine | endpoints |
Bezier | ✗ | ✗ | ✓ | affine | endpoints |
cardinal | ✓ | C1 | ✗ | affine | ✓ |
B-spline | ✓ | C2 | ✓ | | |
| | | | | |
| | | | | |
67
B-spline
| locality | continuity | convex hull | invariance | interpolation |
Hermite | ✗ | ✗ | ✗ | affine | endpoints |
Bezier | ✗ | ✗ | ✓ | affine | endpoints |
cardinal | ✓ | C1 | ✗ | affine | ✓ |
B-spline | ✓ | C2 | ✓ | affine | |
| | | | | |
| | | | | |
68
B-spline
| locality | continuity | convex hull | invariance | interpolation |
Hermite | ✗ | ✗ | ✗ | affine | endpoints |
Bezier | ✗ | ✗ | ✓ | affine | endpoints |
cardinal | ✓ | C1 | ✗ | affine | ✓ |
B-spline | ✓ | C2 | ✓ | affine | ✗ |
| | | | | |
| | | | | |
69
NURBS
70
NURBS
71
NURBS
| locality | continuity | convex hull | invariance | interpolation |
Hermite | ✗ | ✗ | ✗ | affine | endpoints |
Bezier | ✗ | ✗ | ✓ | affine | endpoints |
cardinal | ✓ | C1 | ✗ | affine | ✓ |
B-spline | ✓ | C2 | ✓ | affine | ✗ |
NURBS | ✓ | | | | |
| | | | | |
72
NURBS
| locality | continuity | convex hull | invariance | interpolation |
Hermite | ✗ | ✗ | ✗ | affine | endpoints |
Bezier | ✗ | ✗ | ✓ | affine | endpoints |
cardinal | ✓ | C1 | ✗ | affine | ✓ |
B-spline | ✓ | C2 | ✓ | affine | ✗ |
NURBS | ✓ | C2 | | | |
| | | | | |
73
NURBS
| locality | continuity | convex hull | invariance | interpolation |
Hermite | ✗ | ✗ | ✗ | affine | endpoints |
Bezier | ✗ | ✗ | ✓ | affine | endpoints |
cardinal | ✓ | C1 | ✗ | affine | ✓ |
B-spline | ✓ | C2 | ✓ | affine | ✗ |
NURBS | ✓ | C2 | ✓ | | |
| | | | | |
74
NURBS
| locality | continuity | convex hull | invariance | interpolation |
Hermite | ✗ | ✗ | ✗ | affine | endpoints |
Bezier | ✗ | ✗ | ✓ | affine | endpoints |
cardinal | ✓ | C1 | ✗ | affine | ✓ |
B-spline | ✓ | C2 | ✓ | affine | ✗ |
NURBS | ✓ | C2 | ✓ | perspective | |
| | | | | |
75
NURBS
| locality | continuity | convex hull | invariance | interpolation |
Hermite | ✗ | ✗ | ✗ | affine | endpoints |
Bezier | ✗ | ✗ | ✓ | affine | endpoints |
cardinal | ✓ | C1 | ✗ | affine | ✓ |
B-spline | ✓ | C2 | ✓ | affine | ✗ |
NURBS | ✓ | C2 | ✓ | perspective | as needed |
| | | | | |
76
NURBS
| locality | continuity | convex hull | invariance | interpolation |
Hermite | ✗ | ✗ | ✗ | affine | endpoints |
Bezier | ✗ | ✗ | ✓ | affine | endpoints |
cardinal | ✓ | C1 | ✗ | affine | ✓ |
B-spline | ✓ | C2 | ✓ | affine | ✗ |
NURBS | ✓ | C2 | ✓ | perspective | as needed |
| | | | | |
77
patches
78
79
subdivision
81
82
go deeper with readings...
sites.google.com/view/cgwiki-ncsu/topics/curves
post reactions and... we might discuss them next time
log them and... get reading credit
84
85
summaries, questions & thoughts @
go-vxlab.csc.ncsu.edu / curvesdiscussion
post them and... we’ll discuss them shortly
log them and... get participation credit
86
87
88
89
90