This site is best view with a CSS2 capable
browser, such as Netscape 6+ and IE 5.5+
Vectorial graphics
Section that deals with techniques mostly used in relation with drawn images
(images expressed by lines, contours and coloured areas rather bitmap/raster
images).
- Introduction
to Bezier curves
- Inflection
points of a cubic Bezier
- 3
algorithms for fast, precision driven, piecewise degree reduction of cubic
Bezier curves - in plain speak: "Approximating a cubic Bezier by
quadratic Bezier segments". Some words:
- There exists a solution for the Bezier degree reduction: google for
the "Bezier degree reduction least-squares". If unable to
find anything, the "3D
Game Engine Design (first edition)" by Dave Eberly was recommended
to me as containing a full discussion of this algorithm.
- The discusions I had seems to indicate that, albeit more general,
the least-square algorithm becomes computational expensive if applied
to the adaptive subdivision. Since I haven't (yet) studied the details
of the least-square algorithm for Bezier curve degree reduction, I can't
compare the performance (but stay tuned... I intend to do it)
- Finally, the reason for the article stays in the Timothée
Groleau's article: when I first read it (back in 2003) I said to
myself that there should be a better way.
- Defect comparison between midpoint
quadratic apprximation of a cubic Bezier and a custom chosen quadratic
- for those interested to compare the quality of midpoint approximation
quadratic of a cubic Bezier with other approximating quadratics.
Downloads
Finally, after many years spent procrastinating,
I managed to finish a clean room implementation
for the algorithms exposed by the the first 3 articles... you can download:
- the source code - take the
com.caffeineowl.graphics.bezier.BezierUtils as the starting point in your digging
it contains the algorithms implemented as static methods) –
all the other classes are helpers or "strategy" classes: while you'll still need to
understand them as well, a better context to see what's with them
is given by the BezierUtils' methods
(maybe needles to mention: you'll need to unzip the jar file)
- a runnable jar, showing something that's not
yet published: an exploration into different algorithms to compute the flatness of
a cubic/quadratic Bezier. Safe to launch using java -jar bezier-utils.jar .
- the Javadoc as a downloadable archive
or feel free to explore it online
The content of this site is copyrighted by Adrian Colomitchi. Please consult
the copyright notice before doing
anything except reading/browsing/printing pages of this site.