Drawing Circles with Rational Quadratic Bezier...

5
Drawing Circles with Rational Quadratic Bezier Curves Detlef Reimers, [email protected] September 1, 2011 Description This document explains, how to calculate the bezier points for complete circles. These can be drawn with the Rcurve commmand from the lapdf.sty. If the weight of the point P 1 is w = cos(α), where α ist the angle between P 0 P 1 and P 1 P 2 , then the conic will be a circular arc, if also both length P 0 P 1 and P 1 P 2 are equal. We have to smothly join several of these arcs together, to get a full circle. Only in the case of two segments, we have have to use one negative weight. In all other cases we only have positive weights. In all of the following calculations and drawings we assume, that the center of the circle lies at the origin. 1

Transcript of Drawing Circles with Rational Quadratic Bezier...

Page 1: Drawing Circles with Rational Quadratic Bezier Curvestexdoc.net/texmf-dist/doc/latex/lapdf/rcircle.pdf · Drawing Circles with Rational Quadratic Bezier Curves Detlef Reimers, detlefreimers@gmx.de

Drawing Circleswith

Rational Quadratic Bezier Curves

Detlef Reimers, [email protected]

September 1, 2011

Description

This document explains, how to calculate the bezier points for complete circles. These can be drawn with theRcurve commmand from the lapdf.sty. If the weight of the point P1 is w = cos(α), where α ist the anglebetween P0P1 and P1P2, then the conic will be a circular arc, if also both length P0P1 and P1P2 are equal.

We have to smothly join several of these arcs together, to get a full circle. Only in the case of two segments, wehave have to use one negative weight. In all other cases we only have positive weights. In all of the followingcalculations and drawings we assume, that the center of the circle lies at the origin.

1

Page 2: Drawing Circles with Rational Quadratic Bezier Curvestexdoc.net/texmf-dist/doc/latex/lapdf/rcircle.pdf · Drawing Circles with Rational Quadratic Bezier Curves Detlef Reimers, detlefreimers@gmx.de

General calculation scheme

P1

P2

P3

P4

P5

P6

P7

P8

P9 P0 = P10

r

R

α

We always put P0 at the bottom of the circle and all other points follow counterclockwise. This is the generalprocedure for circle construction with rational quadratic bezier curves (see picture):

1. Set the radius r.

2. Set the number of bezier segments n.

3. Calculate α =360◦

2n.

4. Calculate outer radius R =r

cos(α).

5. Calculate all even bezier points P2i =

(+r · sin(2i · α)−r · cos(2i · α)

)for i = 0 . . . n.

6. Calculate odd bezier points P2i+1 =

(+R · sin((2i+ 1) · α)−R · cos((2i+ 1) · α)

)for i = 0 . . . n− 1.

You can control your calculations, if you check your endpoint P2n. This point is equal with P0. All curves aredrawn with the Rmoveto() and Rcurveto() combination.

2

Page 3: Drawing Circles with Rational Quadratic Bezier Curvestexdoc.net/texmf-dist/doc/latex/lapdf/rcircle.pdf · Drawing Circles with Rational Quadratic Bezier Curves Detlef Reimers, detlefreimers@gmx.de

2 Segments

-

6

Circle with 2n+ 1 = 5 points (w2n = 1 and w2n+1 = ± cos(60◦) = ±0.5).

3 Segments

-

6

Circle with 2n+ 1 = 7 points (w2n = 1 and w2n+1 = cos(60◦) = 0.5).

3

Page 4: Drawing Circles with Rational Quadratic Bezier Curvestexdoc.net/texmf-dist/doc/latex/lapdf/rcircle.pdf · Drawing Circles with Rational Quadratic Bezier Curves Detlef Reimers, detlefreimers@gmx.de

4 Segments

-

6

Circle with 2n+ 1 = 9 points (w2n = 1 and w2n+1 = cos(45◦) = 0.707).

5 Segments

-

6

Circle with 2n+ 1 = 11 points (w2n = 1 and w2n+1 = cos(36◦) = 0.809).

4

Page 5: Drawing Circles with Rational Quadratic Bezier Curvestexdoc.net/texmf-dist/doc/latex/lapdf/rcircle.pdf · Drawing Circles with Rational Quadratic Bezier Curves Detlef Reimers, detlefreimers@gmx.de

6 Segments

-

6

Circle with 2n+ 1 = 13 points (w2n = 1 and w2n+1 = cos(30◦) = 0.866).

7 Segments

-

6

Circle with 2n+ 1 = 15 points (w2n = 1 and w2n+1 = cos(25.71◦) = 0.901).

5