[metapost] Some observations on turning and self intersection
wl at gnu.org
Sat Feb 5 04:19:25 CET 2005
> I attempted to find all possible ways a cubic Bezier could behave.
Thanks for your analysis!
> The formula for k(t) is
> k(t)/6 = (a x b)(1-t)^2 + (a x c)(1-t)t (b x c)t^2
> where a = postcontrol 0 of f - point 0 of f
> b = precontrol 1 of f - postcontrol 0 of f
> and c = point 1 of f - precontrol 0 of f
> The condition for a loop is then (a x c)^2 < 4(a x b)(b x c).
This is basically the same what Giuseppe has posted a few days ago.
The disadvantage of computing the cross product is that its components
can become very large.
In an answer to Giuseppe's mail I provided a simpler (less time
consuming) constraint which must be fulfilled so that a
self-intersection can happen, but maybe this is not necessary if
clever reformulation of your result can avoid overflows.
More information about the metapost