1 of 90

Intro CG @ NCSU

1

2 of 90

curves

2

3 of 90

Intro CG @ NCSU

Ben Watson

cgclass.csc.ncsu.edu

3

4 of 90

4

5 of 90

why?

5

6 of 90

6

7 of 90

7

8 of 90

8

9 of 90

9

10 of 90

history

10

11 of 90

11

12 of 90

12

13 of 90

13

14 of 90

14

15 of 90

math!

15

16 of 90

P1

Q(t) = P1 + t(P2 - P1)

P2

16

17 of 90

Q(t) = P1 + t(P2 - P1)

t = 1

t = 0

17

18 of 90

Q(0)

Q(t) = P1 + t(P2 - P1)

Q(1)

Q(t)

18

19 of 90

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

20 of 90

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

21 of 90

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

22 of 90

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

23 of 90

Q(t) = T M G

geometry vector

G4

G3

G1

G2

G1

G2

G3

G4

23

24 of 90

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

25 of 90

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

26 of 90

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

27 of 90

control

27

28 of 90

28

29 of 90

locality

bad locality

high order curve

good locality

b-spline

29

30 of 90

locality

30

31 of 90

join continuity

C1

same

loc & slope

C0

same

location

C2

same

loc, slope, 2nd deriv

31

32 of 90

join continuity

32

33 of 90

convex hull

33

34 of 90

convex hull

34

35 of 90

interpolate vs approximate

35

36 of 90

interpolate vs approximate

36

37 of 90

transform invariance

37

38 of 90

ask your questions

BREAK TIME

listen to

tunes

38

39 of 90

types

39

40 of 90

Hermite

40

41 of 90

Hermite

41

42 of 90

Hermite

locality

continuity

convex hull

invariance

interpolation

Hermite

42

43 of 90

Hermite

locality

continuity

convex hull

invariance

interpolation

Hermite

43

44 of 90

Hermite

locality

continuity

convex hull

invariance

interpolation

Hermite

44

45 of 90

Hermite

locality

continuity

convex hull

invariance

interpolation

Hermite

45

46 of 90

Hermite

locality

continuity

convex hull

invariance

interpolation

Hermite

affine

46

47 of 90

Hermite

locality

continuity

convex hull

invariance

interpolation

Hermite

affine

endpoints

47

48 of 90

Bezier

48

49 of 90

Bezier

49

50 of 90

Bezier

locality

continuity

convex hull

invariance

interpolation

Hermite

affine

endpoints

Bezier

50

51 of 90

Bezier

locality

continuity

convex hull

invariance

interpolation

Hermite

affine

endpoints

Bezier

51

52 of 90

Bezier

locality

continuity

convex hull

invariance

interpolation

Hermite

affine

endpoints

Bezier

52

53 of 90

Bezier

locality

continuity

convex hull

invariance

interpolation

Hermite

affine

endpoints

Bezier

affine

53

54 of 90

Bezier

locality

continuity

convex hull

invariance

interpolation

Hermite

affine

endpoints

Bezier

affine

endpoints

54

55 of 90

cardinal

55

56 of 90

cardinal

56

57 of 90

cardinal

57

58 of 90

cardinal

locality

continuity

convex hull

invariance

interpolation

Hermite

affine

endpoints

Bezier

affine

endpoints

cardinal

58

59 of 90

cardinal

locality

continuity

convex hull

invariance

interpolation

Hermite

affine

endpoints

Bezier

affine

endpoints

cardinal

C1

59

60 of 90

cardinal

locality

continuity

convex hull

invariance

interpolation

Hermite

affine

endpoints

Bezier

affine

endpoints

cardinal

C1

60

61 of 90

cardinal

locality

continuity

convex hull

invariance

interpolation

Hermite

affine

endpoints

Bezier

affine

endpoints

cardinal

C1

affine

61

62 of 90

cardinal

locality

continuity

convex hull

invariance

interpolation

Hermite

affine

endpoints

Bezier

affine

endpoints

cardinal

C1

affine

62

63 of 90

B-spline

63

64 of 90

B-spline

64

65 of 90

B-spline

locality

continuity

convex hull

invariance

interpolation

Hermite

affine

endpoints

Bezier

affine

endpoints

cardinal

C1

affine

B-spline

65

66 of 90

B-spline

locality

continuity

convex hull

invariance

interpolation

Hermite

affine

endpoints

Bezier

affine

endpoints

cardinal

C1

affine

B-spline

C2

66

67 of 90

B-spline

locality

continuity

convex hull

invariance

interpolation

Hermite

affine

endpoints

Bezier

affine

endpoints

cardinal

C1

affine

B-spline

C2

67

68 of 90

B-spline

locality

continuity

convex hull

invariance

interpolation

Hermite

affine

endpoints

Bezier

affine

endpoints

cardinal

C1

affine

B-spline

C2

affine

68

69 of 90

B-spline

locality

continuity

convex hull

invariance

interpolation

Hermite

affine

endpoints

Bezier

affine

endpoints

cardinal

C1

affine

B-spline

C2

affine

69

70 of 90

NURBS

70

71 of 90

NURBS

71

72 of 90

NURBS

locality

continuity

convex hull

invariance

interpolation

Hermite

affine

endpoints

Bezier

affine

endpoints

cardinal

C1

affine

B-spline

C2

affine

NURBS

72

73 of 90

NURBS

locality

continuity

convex hull

invariance

interpolation

Hermite

affine

endpoints

Bezier

affine

endpoints

cardinal

C1

affine

B-spline

C2

affine

NURBS

C2

73

74 of 90

NURBS

locality

continuity

convex hull

invariance

interpolation

Hermite

affine

endpoints

Bezier

affine

endpoints

cardinal

C1

affine

B-spline

C2

affine

NURBS

C2

74

75 of 90

NURBS

locality

continuity

convex hull

invariance

interpolation

Hermite

affine

endpoints

Bezier

affine

endpoints

cardinal

C1

affine

B-spline

C2

affine

NURBS

C2

perspective

75

76 of 90

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

77 of 90

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

78 of 90

patches

78

79 of 90

79

80 of 90

80

81 of 90

subdivision

81

82 of 90

82

83 of 90

83

84 of 90

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 of 90

85

86 of 90

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 of 90

87

88 of 90

88

89 of 90

89

90 of 90

90