Here is a short list of my books on the subject of Parametric Curves and Surfaces.
Graphics
There are 14 posts filed in Graphics (this is page 2 of 2).
Moving an Object Seamlessly Along a Path. Introduction.
In the field of splines there are two common approaches to finding points along a given curve. One is that of the curve’s original t parameter, the other one is done by computing the arc-length of the curve. The second approach is commonly known as arc-length parameterization. There are also two approaches on solving the continuity of curve segments and segment re-parameterization. One is to keep the degree of the curve unchanged and the other one is to raise the degree of the curve altogether.
Typically, one of the easiest ways to move an object along a curve segment involves traversing the object along the curve’s t parameter between [0,1]. For each value of t, get the corresponding x and y coordinate of the curve, and move the object from its previous x,y to the new x,y coordinate value. Depending on how exact you want the curve, the animation will look smooth or jaggy. Due to the nature of parameterization, x and y coordinates are not evenly spaced, and depending on the curve curvature, an object will move at different speeds at different locations on the curve segment. The difficulty lies in specifying the object’s speed if using t values due to the fact that x and y coordinates are not representative of a curve’s length, and a curve’s length and its relationship to the value of t is non-linear.
Thus, we are introduced to arc-length parameterization. In order to compute evenly spaced coordinates along a curve we want to evaluate the point based on their arc-length rather than using the coordinates of the curve’s parametric t value.
I will follow up with sample code to retrieve s values for the arc-length of a curve and then move the object seamlessly along the s coordinates.
In the meantime, here are some references for you to enjoy on the subject matter..
DeRose, T.D., Goldman, R.N., Hagan, H. and Mann, S. “Functional Composition Algorithms Via Blossoming”, “ACM Transactions on Graphics 1993 12(2) pp 113-135.
Peterson J.W. “Arc-Length Parameterization of Spline Curves”, http://www.saccade.com/writing/graphics/RE-PARAM.PDF
Bartels, R.H., Beatty, J.C., and Barsky, B.A., An Introduction to Splines for use in Computer Graphics and Geometric Modelling, Morgan Kaufmann (Los Altos), 1987.
Farin, G., Curves and Surfaces for Computer Aided Geometric Design,, (5th Ed.) Academic Press (San Diego)
Jens Gravesen. “The Length of Be ́zier Curves”. Graphics Gems V, pp. 199–205. Academic Press, Boston, 1995.
Brian Guenter and Richard Parent. “Computing the Arc Length of Parametric Curves”. IEEE Computer Graphics and Applications, Vol. 10, No. 3, pp. 72–78, May 1990.
Walter, M. and Fournier, A. “Approximate Arc Lengh Parameterization”, SIBGRAPI (1996) 143–150
Teaser Post
Like the adage says, a picture is worth a thousand words. I will let the images speak for themselves.
Questions?
I used to work at Deneba Canvas back in the early 90’s. Canvas had a famous drawing that became iconic with the software package which was that of a cut-away of a F40 Ferrari. The original illustration was done by David Kimble who spent like 6 months at the Ferrari plant going through technical drawings, specs and what not. David Rumfelt was a ‘computer illustrator’ at Deneba, and reproduced Kimble’s illustration. He vectorized it into Canva objects, and if memory serves me right it took him almost 3 months.
The original drawing had about 28,000 objects because of the limitation on PCs of yesteryear, mostly because on the Mac, there was this thing that probably a few of us has have to deal with, that of Fixed number notation. Ergo, the reason Canvas 3.0 had a limit on the number of objects on the display list.
I few months ago, I realized I had the a version of the file F40 in Illustrator format, from when I started working in Illustrator back at Adobe. I took the F40 eps file, exported as SVG and read it into the Corona SDK simulator using a simple SVG parser.
Thats my teaser for now, and to the folks who bought Deneba, don’t send your lawyers as am not ‘commercializing’ the image. It is for my own private use. From a product that I have been fond of, and proud to have been a member of its core engineering team. Mario, Patrick, Sanjay, Phil, Dave, Gerry, Tom, Mark, Joaquin, Jorge, Steve and a few others. Here is to the original days of Canvas.
What does it all mean?
Carlos
The Utah Teapot 3D Wireframe rendering using Corona SDK
Continuing my topics in computer graphics, something which am very fond of, I took an OFF file, which is a standard data file format for polygon shapes, I read it into Corona, parse it, and then compute the faces and then render the wire frame all using native Corona objects. I use some heuristics to calculate the Z distance to fade out the color when the object renders away from the camera(view).
Here is a video of a 3D wireframe rendering of the famous Utah Teapot, also known as the sixth platonic solid, on you tube at http://bit.ly/g9LlG9
Carlos.
ps: Martin Newell, responsible for the Utah Teapot, worked a few offices from my office when I used to work in the Adobe Illustrator group. Words cannot describe what a perfect gentleman he is, and his brilliance as well as his humbleness is truly amazing.











