Home | Lehre | Videos | Texte | Vorträge | Software | Person | Impressum, Datenschutzerklärung | Blog
Curves
-
Curves as a versatile [vielseitige] geometric primitive [Grundform]
-
Fixed shades, parametrized shapes, free-form shapes
-
Cubic curves
-
Intuitive control of cubic curves? Demo with OpenOffice
-
Hermite curves
-
A special way of representing [darstellen] cubic curves [kubische Kurven]
-
Defined by start point, end point, initial and final velocity vector
-
p(t) = p0(2t3-3t2+1) + v0(t3-2t2+t)
+ v1(t3-t2) + p1(-2t3+3t2)
-
Demo with OpenOffice
-
Bézier curves
-
Another special way of representing cubic curves
-
Defined by start point, end point, and two intermediate points that act
like magnets
-
p(t) = p0(1-t)3 + p13(1-t)2t
+ p23(1-t)t2 + p3t3
-
Curve starts tangent to p1-p0 and ends
tangent to p3-p2
-
Demo with OpenOffice
-
.NET: DrawBezier
-
Curves formed by joining several cubic segments
-
Geometric (dis-)continuity
-
.NET: DrawBeziers
-
Catmull-Rom splines (special form of cardinal splines)
-
Given: a sequence of points to be converted
-
Objective [Arbeitsziel]: Compute a sequence of Hermite curves interpolating
those points
-
Solution: It remains to define the velocity vectors of the Hermite representation.
For the start point and the end point choose the difference vector between
this point and its neighbor. For each other (i.e., interior) point choose
half the difference vector between the preceding point and the next point.
-
.NET: DrawCurve
-
Mouse events to be used for drawing (present in Windows Forms ready for
overriding)
-
OnMouseDown
-
OnMouseUp
-
OnMouseMove
-
Smoothing
-
Given: a sequence of points on the screen
-
Objective: Find a smooth curve that interpolates these points. (Problem:
What does "smooth" mean in mathematical terms?)
-
Very cheap solution (most often too cheap): Take only every n-th
point and build a Catmull-Rom spline.
-
Outlook
-
B-spline curves and surfaces
-
NURBS curves and surfaces
-
spline curves for animation