http://www.algorithmist.net/technotes.html
Computational Geometry |
Focusing primarily on interactive creation and display of two-dimensional curves, I hope this series illustrates that Flash is a valuable tool in teaching computational geometry. Each TechNote below opens in a new browser window. :: Natural Cubic Splines - Natural and parametric cubic splines. :: Hermite Curves - Cubic Hermite curves. :: Quadratic Beizer Curves - Quadratic Beizer's and MovieClip.curveTo(). :: Cubic Bezier Curves - Cubic Bezier's and introduction to quadratic approximation. :: Catmull-Rom Splines - An introduction to Catmull-Rom Splines. :: Arc Length of a Catmull-Rom Spline - Arc Length of parametric curves and derivative evaluation, applied to Catmull-Rom splines. :: Curve-Constrained Scrolling Via Script - Parametric Quadratic and Piecewise Hermite curves applied to curve-constrained scroll indicators. :: Arc-Length Parameterization - Introduction to curve parameterization and how to reparameterize a curve on arc length. Techniques applied to a Catmull-Rom spline. Examples include how to distribute sprites evenly along a curve and path animation (including path following and orientation). :: Recursive Subdivision - Splitting a cubic Bezier curve into multiple equivalent, but smaller segments. Several subdivision approaches are discussed with the ultimate goal of pairing a fast subdivision with a piecewise cubic Bezier spline. :: Composite Bezier Curves - Constructing a piecewise cubic Bezier curve that interpolates a set of knots with G-1 continuity and tension control. Optimized for fast drawing. |
Online Demos |
These interactive demos illustrate various concepts in applied mathematics. Most initial examples are from the field of computational geometry. All demos required the Flash 9 player. :: Parameterization Demo - Illustrate the difference bewteen uniform and arc-length parameterization on a cubic Bezier spline. ::Quadratic Bezier Parameterization - illustrates the difference in natural vs arc-length parameterization for a simple quadratic Bezier curve. ::Quad. Bezier, 3-point interpolation - The classic formula familiar to many Flash programmers is actually a simplified version of a more general parameterization, called 'midpoint' parameterization or 'midpoint interpolation'. The more general formula is discussed in the Cubic Bezier TechNote. This demo illustrates the difference between midpoint, chord-length, and arbitrary parameterizations. ::Catmull-Rom Spline animation - a simple example illustrating the animation of a Catmull-Rom spline from beginning to end, as if it were being drawn by hand. Also a subtle introduction to spline parameterization. ::Closed-Loop Catmull-Rom spline - a simple method for setting outer control points for a smooth, continuous-loop Catmull-Rom spline. ::Path Animation with Papervision 3D - a simple demo illustrating path animation with Papervision 3D and the 3D Catmull-Rom spline. ::Lemniscate of Bernoulli - how to use a closed-loop Catmull-Rom spline to animate sprites around a Lemniscate of Bernoulli (infinity or fiture-8 shape). ::Papervision 3D Figure-8's- builds upon the 2D Lemniscate of Bernoulli example to animate markers along figure-8 paths in the XY, XZ, and YZ planes. ::Papervision 3D Path Animation from 3ds max - uses spline data exported from 3ds max (in XML) and the Singularity 3D Bezier spline for path animation in Papervision 3D. ::Quadratic Bezier y at x - computes (t,y) values along a quadratic Bezier curve at a given x-coordinate. ::Cubic Bezier y at x - computes (t,y) values along a cubic Bezier curve at a given x-coordinate. ::Closest Point on Cubic - closest point on a cubic Bezier to an arbitrary point (port of class Graphic Gem algorithm). ::Closest Point on Quadratic - closest point on a quadratic Bezier to an arbitrary point (Graphic Gem algorithm generalized to work with quads or cubics). ::Easing Along a Cubic Bezier Curve- Penner easing functions applied to easing along a parametric curve. Another practical application of arc-length parameterization. ::Cubic Bezier 4-point Interpolation-Interpolating four points with a cubic Bezier curve. |