# comp.graphics.algorithms

## Subject: Estimation of Bezier curve flatness criteria

Hi all,

Some time ago I have already asked this question, but didn't get
answer, may be because of incomplete problem formulation. I'll try to
explaint problem correctly.

The original problem is building stoke for Bezier curves. In my
situation stoke have to consists of Bezier curves with the same degree.
This realizable only in certain situation when source curve enough flat
otherwise I subdivide source curve with Casteljau method.

Let's look on the picture there is quad curve example
http://len97-1.spb.ru/images/untitled.JPG
(P0,P1,P2) - source curve
(L0,L1,L2) and (P0,P1,P2) - left and right curves
(L0,R0) is perpendicular to (P0,P1) and (L2,R2) is perpendicular to
(P2,P1)
(P0,P1) || (L0,L1) || (R0,R1) and (P1,P2) || (L1,L2) || (R1,R2)
dist(P0,L0) = dist(P0,R0) = dist(P2,L2) = dist(P2,R2) = W

As you see distance between source and left/right curves is about W, so
I can use them as stroke for source one. Ther are some bad examples
when source one isn't flat
http://len97-1.spb.ru/images/untitled2.JPG
http://len97-1.spb.ru/images/untitled3.JPG

I think, I have found effective flatness criteria for source curve, I
suppose that distance between source and left/right curves in "good"
cases is about distance between parametric centers dist(P(0.5),L(0.5)).

Let's write it mathematically (main claim)
If we have a small A >=0 and |dist(P(0.5),L(0.5)) - W| <= A,
so exists a small B >= 0 so W-B <= minDist(P,L) <= maxDist(P,L) <=
W+ B

Practicaly it works very well. Moreover my calculations show that
dist(P(0.5),L(0.5)) depends on angle (P0,P1,P2) only!! It meens we can
easy calculate angle's tangent as (P0-P1)*(P2-P1)/((P0-P1)x(P2-P1)) and
calculate some function C(A) to check that tangent ~ C(A). Really C(A)
is complex but we have to calculate it only once.

Unfortunately I cann't prove the man claim =(

May be exists similar works or literature?
Or may be somebody did similar research?

I would appreciate for any your help.
Thanks, Denis.