bezier curves form V2 .pdf


À propos / Télécharger Aperçu
Nom original: bezier curves form V2.pdf
Titre: bezier curves form (clothoid and arc circle simulation) /area/ smoothing)
Auteur: alexandre christophe Glon

Ce document au format PDF 1.6 a été généré par PScript5.dll Version 5.2.2 / Acrobat Distiller 11.0 (Windows), et a été envoyé sur fichier-pdf.fr le 19/12/2019 à 21:46, depuis l'adresse IP 87.100.x.x. La présente page de téléchargement du fichier a été vue 209 fois.
Taille du document: 945 Ko (37 pages).
Confidentialité: fichier public


Aperçu du document


Bezier curves
form of
degree 2 and 3

I

I’

1

1

Réalisé par Alexandre Christophe GLON le 29-01-2019
French to English translation : Google

2

2

Table of contents
Equations of Bézier curves : degree 2................................... pages 4 & 5
Equations of Bézier curves : degree 3.................................. pages 6 & 7
Special Bezier Curves 3........................................................... page 8
Changing parameters of a Bézier curve .................... page 9
Intersection of a line with a Bézier curve .................... page 10
Parameter, t estimation ................................................................... page 11
Parametric parabola, calculation of vertex and focus .............. pages 12 & 13
Stationary and crossing points of a Bézier curve .... pages 14 et 15
Recursive subdivisions (De Casteljau) .......................................... pages 16 & 17
Fusion of 2 Bézier curves ................................................................ page 18
Distance from a point to a curve.................................................... page 19
Radius of curvature.......................................................................... page 20
Paramétrization ............................................................................... page 21
Area...................................................................................................... pages 22 & 23
Arc circle simulation ........................................................................ pages 24 & 25
Clothoid simulation ............................................................................ pages 26 & 27
Bezier passing thru 3 points............................................................. pages 28 & 29
Smoothing........................................................................ pages 30, 31, 32, 33 & 34
Rotation using the base change....................................................... page 35
How to solve a 3rd degree equation.............................................. pages 36 & 37

Bibliographie
[1] Modèles de Bézier des B-Splines et des Nurbs par G. DEMENGEL et J.P. POUGET éditions Ellipses
[2] Topographie et topométrie modernes tome 1 : par S. MILLES et J. LAGOFUN éditions Eyrolles
[3] Topographie et topométrie modernes tome 2 : par S. MILLES et J. LAGOFUN éditions Eyrolles
[4] Cours de géométrie : par M. TROYANOV Presses polytechniques et universitaires romandes
[5] Method’S classe de première : par T. PETIT éditions Ellipses

3

3

Équations of Bezier curves of degree 2

[1]

Points A0 A1 A2 are the points of definitions of a parametric Bezier curve of degree 2

To calculate the coordinates of a point M(t) on the curve you must know its paramètre t *
Vector and analytical equations of C2

b) canonical definitions ( according to power of t)

a) according to Bernstein’s polynomial

OM(t) = t²(A1A0+A1A2) + 2t(A0A1) + OA0

OM(t) = (1-t)²OA0 + 2t(1-t)OA1 + t²OA2
xM(t) = (1-t)² xA0 + 2t(1-t) xA1 + t² xA2
yM(t) = (1-t)² yA0 + 2t(1-t) yA1 + t² yA2

M(t)

M(t)

x = f(t) = t² (xA0 - 2xA1 + xA2) + 2t(xA1 - xA0) + xA0
y = g(t) = t² (yA0 - 2yA1 + yA2 ) + 2t(yA1 - yA0) + yA0

Example
curve

C2

X

Y

A0
A1
A2

6
87
60

36
81
9

t

0
0,2
0,3
0,4
0,5
0,635
0,7
1,1
1

xM(t)
6
34,1
44,9
53,5
60
65,3
66,5
53,5
60

M(t)

C2 is a portion of parbola

A1

x = f(t) = -108t² + 162t + 6
y = g(t) = -117t² + 90t + 36

C2

34,1
M(0,2) 49,3

yM(t)
36
49,3
52,5
53,3
51,8
46,0
41,7
-6,6
9

M(0,635)

A0

65,3
46,0

t<0
y

A2
x

scale 1

M(1,1)

t >1

The vectors A0A1 et A2A1 are respectively tangent to C2 in A0 et A2

Equations of the first derivative also called first Hodograph

a’) according to Bernstein’s polynomial
OH1(t) = 2[ (1-t) (A0A1) + t(A1A2) ]

M’(t)
ou

xH1(t) = 2[ (1-t) (xA1 - xA0) + t (xA2 - xA1) ]
yH1(t) = 2[ (1-t) (yA1 - yA0) + t (yA2 - yA1) ]

b) canonical definitions ( according to power of t)
OH1(t) = 2t(A1A0 + A1A2) + 2(A0A1)

M’(t)

x’= f ’(t) = 2t (xA0 - 2xA1 + xA2) + 2(xA1 - xA0)
y’= g’(t) = 2t (yA0 - 2yA1 + yA2) + 2(yA1 - yA0)

OH1(t) = -2[ (1-t)A0 - (1-2t )A1 - t A2 ]
Second Deritative

M’’(t)
* usage dictates that the parameter t ∈ [0 1]

4

x’’= f ’’(t) = 2 ( xA0 - 2xA1 + xA2 ]
y’’= g’’(t) = 2 ( yA0 - 2yA1 + yA2 ]
4

Hodograph
The H1 hodograph is a graphical representation of the first derivate at C2 .
The deritative ’ allows to identify the slope of the tangent to C2 at the point M(t) .

D0(0)
Example

M(0.5)

C2

H1(0.5)

α ≈ -26,6°
H1(0.5)

or
Hodograph

D1(1)

scale : 0,5

The tangent to C2 at a point M(t) =

yH1(t)
xH1(t)

α

29,1°
20,0°
11,5°
-2,7°
-26,6°
-57,3°
-81,7°
83,7°
69,4°

= tan (α)

C2’

X

D0
D1

162
-54

Y
90
-144

M’(t)

xH1(t) = (1-t)(162)+ t (90)
yH1(t) = (1-t)(-54) + t (-144)

M’(t)

x’= f ’(t) = t (-216) + 162
y’= g’(t) = t (-234) + 90

t

0
0,2
0,3
0,4
0,5
0,6
0,7
0,8
1

xH1(t)
162,0
118,8
97,2
75,6
54,0
32,4
10,8
-10,8
-54,0

yH1(t)
90,0
43,2
19,8
-3,6
-27,0
-50,4
-73,8
-97,2
-144,0

Matrix de fininition of a B2
xA

passage matrix

1

t
wn

5

t2

1
-2
1

0
2
-2
p2

0
0
1

yA

xA0 yA0
xA1 yA1
xA2 yA2
Od

=

xM(t) yM(t)

OM(t)

5

Vector, canonical, matrix definition of a Bezier curve of degree 3.
[1]

a) Definition according to Bernstein polynomials
OM(t) = (1-t)³ OP0 + 3t(1-t)² OP1 + 3t²(1-t) OP2 + t³OP3

M(t)

xM(t) = (1-t)³ xP0 + 3t(1-t)² xP1 + 3t²(1-t) xP2 + t³ xP3
yM(t) = (1-t)³ yP0 + 3t(1-t)² yP1 + 3t²(1-t) yP2 + t³ yP3

OM’(t) = 3[ (1-t)² (P0P1) + 2t(1-t) (P1P2) + t² (P2P3) ]

M’(t)

xM’(t) = 3[ (1-t)² (xP1-xP0) + 2t(1-t)(xP2-xP1) + t²(xP3-xP2) ]
yM’(t) = 3[ (1-t)² (yP1-yP0) + 2t(1-t)(yP2-yP1) + t²(yP3-yP2) ]

OM’’(t) = 6[ (1-t) (P1P0 + P1P2) + t (P2P1 + P2P3) ]

M’’(t)

xM’’(t) = 6[ (1-t) (xP2-xP0) + t (xP1-2xP2+xP3) ]
yM’’(t) = 6[ (1-t) (yP2-yP0) + t (yP1-2yP2+yP3) ]

OM’’’(t) = 6[ (P0P3) + 3(P2P1)

M’’’(t)

xM’’’(t) = 6[ xP3-xP0 +3(xP1-xP2) ]
yM’’’(t) = 6[ yP3-yP0 + 3(yP1-yP2) ]

C3
P0
P1
P2
P3

X

Y

14
34
64
90

10
54
54
26

]

P1

P2

First Hodograph of
X

φ3
φ0

M(0,3)

A0= 3(P0P1)
A1= 3(P1P2)
A2= 3(P2P3)

M(0,7)

34,32
38,15

60
90
78

A0

C3
Y

132
0
-84

α3

C3

M’(0,3)

74,22
57,12

P3

α0
P0

A1

scale : 1/3

scale 1

the vectors P0P1 et P2P3 are respectively tangent to

C3

in P0 et P3

A2

Matrix Definition
t
0
0,3
0,7
1

1
1
1
1
1

t
t² t3
0 0 0
0,3 0,1 0,027
0,7 0,5 0,343
1 1 1
wn

passage matrix

×

1
-3
3
-1

0
3
-6
3
p3

b) Definition with P0 P1 P2 P3 isolated .
xP0 + 3t(1-t)² xP1 + 3t²(1-t) xP2 + t³ xP3
M(t) xy == gf(t)(t) ==(1-t)³
(1-t)³ yP0 + 3t(1-t)² yP1 + 3t²(1-t) yP2 + t³ yP3

x’ = f ’(t) = -3[ (1-t)² xP0 - (1-t)(1-3t) xP1 - t(2-3t) xP2 - t² xP3 ]

M’(t) y’ = g’(t) = -3[ (1-t)² yP0 - (1-t)(1-3t) yP1 - t(2-3t) yP2 - t² yP3 ]
x’’ = f ’’(t) = 6[ (1-t) xP0 - (2-3t) xP1 + (1-3t) xP2 + t xP3 ]

M’’(t) y’’ = g’’(t) = 6[ (1-t) yP0 - (2-3t) yP1 + (1-3t) yP2 + t yP3 ]

0
0
3
-3

0
0
0
1

×

xP
14
34
64
90

yP
10
54
54
26

Os

=

xM(t)
14,00
34,32
65,90
90,00

yM(t)
10,00
38,15
43,21
26,00

OM(t)

c) Definition vectors and constraints .
With : V0= OP0 ; V1= (OP1 - OP0) ; V2 = (OP2 - OP1) ; V3= (OP3 - OP2)

OM(t) = V0 + (1-(1-t)³) (V1) + (3t²-2t³) (V2) + t³ (V3)
OM’(t) = 3[(1-t)²) (V1) + 2t(1-t) (V2) + t² (V3)]
OM’’(t) = -6[(1-t) (V1) - (1-2t) (V2) - t(V3)]
OM’’’(t) = 6[ (V1) -2 (V2) + (V3)]

x’’’ = f ’’’(t) = 6[ xP3 - xP0 + 3( xP1 - xP2)]

M’’’(t) y’’’ = g’’’(t) = 6[ yP3 - yP0 + 3( yP1 - yP2)]
6

6

b) canonical definitions ( according to power of t)
Reciprocally

OM(t) = OC0t³ + OC1t² + OC2t + OC3

M(t)

x = f(t) = x3t³+x2t²+x1t+x0
y = g(t) = y3t³+y2t²+y1t+y0

M’(t)

x’= f ’(t) =3x3t²+2x2t+x1
y’= g’(t) = 3y3t²+2y2t+y1

So in our example the les points of C3 are défined by :

And matrix with :

xP0 = x0

With : xC0 = x3 = (xP3 - xP0 + 3(xP1-xP2))
xC1 = x2 = 3(xP0 + xP2 - 2xP1)
xC2 = x1 = 3(xP1-xP0)
xC3 = x0 = xP0
( Resp. for the y)

Of =

x0
y0

x1
y1

x2
y2

xP1 = x1 + xP0

( Resp. for the y)

3

xP2 = x2 - xP0 + 2xP1

3
xP3 = x3 + xP0 - 3(xP1-xP2)

M’’(t)

x’’= f ’’(t) = 6x3t+2x2
y’’= g’’(t) = 6y3t+2y2

x’’’ = 6 x3

M’’’(t) y’’’ = 6 y3

x = f = -14t³+30t² +60t +14
M(t) y = g(t) = 16t³ -132t²+132t +10
(t)

x3
y3

OM(t) =

T

Of wn

e) Canonical definition with P1 et P3 défined by polar coordinates .
avec α0 = oriented angle P0P1 and φ0 = ||P0P1|| and α3 = oriented angle P3P2 et φ3 = ||P3P2||

M(t)

x = f(t) = t³ (2xP0 + 3φ0 cos(α0)-3φ3 cos(α3) -2xP3 ) - 3t² ( xP0 + 2φ0 cos(α0) - φ3 cos(α3) -xP3 ) + 3t φ0 cos(α0) + xP0
y = g(t) = t³ (2yP0 + 3φ0 sin(α0)-3φ3 sin(α3) -2yP3 ) - 3t² ( yP0 + 2φ0 sin(α0) - φ3 sin(α3) -yP3 ) + 3t φ0 sin(α0) + yP0

e1) With P1 known and fixed .

M(t)

x = f(t) = t³ (- xP0 + 3xP1-3φ3 cos(α3) -2xP3 ) + 3t² ( xP0 - 2xP1 +φ3 cos(α3) +xP3 ) + 3t ( xP1-xP0 ) + xP0
y = g(t) = t³ (- yP0 + 3yP1-3φ3 sin(α3) -2yP3 ) + 3t² ( yP0 - 2yP1 +φ3 sin(α3) +yP3 ) + 3t ( yP1-yP0 ) + yP0

e2) With P2 known and fixed .

M(t)

x = f(t) = t³ (2xP0 + 3φ0 cos(α0) - 3xP2 + xP3 ) - 3t² ( xP0 + 2 φ0 cos(α0) - xP2 ) + 3t φ0 cos(α0) + xP0
y = g(t) = t³ (2yP0 + 3φ0 sin(α0) - 3yP2 + yP3 ) - 3t² ( yP0 + 2 φ0 sin(α0) - yP2 ) + 3t φ0 sin(α0) + yP0

f ) Definition by polar coordinates wthe isolated elements.

M(t)

x = f(t) = (1-t)²(2t+1) xP0 + 3t(1-t)² φ0 cos(α0) + 3t²(1-t) φ3 cos(α3) + t²(3-2t)xP3
y = g(t) = (1-t)²(2t+1) yP0 + 3t(1-t)² φ0 sin(α0) + 3t²(1-t) φ3 sin(α3) + t²(3-2t)yP3

M’(t)

x’ = f ’(t) = 3 [ -2t(1-t) xP0 + (1-t)(1-3t) φ0 cos(α0) +t(2-3t) φ3 cos(α3) + 2t(1-t)xP3 ]
y’ = g’(t) = 3 [ -2t(1-t) yP0 + (1-t)(1-3t) φ0 sin(α0) + t(2-3t) φ3 sin(α3) + 2t(1-t)yP3 ]

= f ’’(t) = 6 [ -(1-2t) xP0 -(2-3t) φ0 cos(α0) +(1-3t) φ3 cos(α3) + (1-2t)xP3 ]
M’’(t) x’’
y’’ = g’’(t) =
(1-2t) yP0 -(2-3t) φ0 sin(α0) + (1-3t) φ3 sin(α3) + (1-2t)yP3

6[-

]

= f ’’’(t) = 6 [ 2xP0 +3 φ0 cos(α0) -3 φ3 cos(α3) -2xP3 ]
M’’’(t) x’’’
2yP0 +3 φ0 sin(α0) -3 φ3 sin(α3) -2yP3
y’’’ = g’’’(t) =

6[

]

Definitions e) and f ) are very practical for certain calculations.

7

7

Special curves (degree 3).
a ) The différent types of curves.

2 d’inflexion points

1 inflexion point
Type 1

1 peak
of 1st species
Type 3

Type 2

1 crossing point

1 parabolic arc

Type 4

Type 5

b) Curve B3 which is a portion of parabola
in most vector design software only Bezier curves of degree 3 are used.
Here is a method to display a real parabola segment with a B3.

A1
P1

P1 must be at 2 of A0A1 and P2 at 2 of A2A1
3
3

C2
A0
A1
A2

X

Y

6
87
60

36
81
9

C2
P0

=

P1
P2
P3

X

Y

6
60
78
60

36
66
57
9

P2

C2
P0 = A0
y

x

P3 = A2

échelle 0.5

c) Curve defined by «3 points» used in Postscript system.
The curve is defined with the points P0 P1 P2 P3 but P2 is confused with P3.
X
P0
P1
P2
P3

14
34
90
90

Y

Type 3 curves with cusp in P3

P1

10
54
26
26

P1
P0
P1
P2
P3

P2 = P3

P0

P0

e) Curve with P2 on the tangent at P0, and P1 in the middle of P0P2

Type 2 curve with two inflections, one of which in P0

P0
P1
P2
P3

Y

5
20
30
35

5
5
5
20

Type 1 curve with 1 inflexion in P0

P3
P0
P1
P2

P0

P3

P1

8

Y
26
54
10
10

P2 = P3

d) Curvee with P2 on the tangent at P0

X

X
90
34
14
14

P2

X

Y

5
17.5
30
35

5
5
5
20

P3

P0
P1

P2

8

Change of parameters of a B3 by rotation and / or translation
We will use the canonical definition of a B3 =>

t³+x2t²+x1t+x0
M(t) xy == gf(t)(t) == x3
y3t³+y2t²+y1t+y0

Example with a curve ‘‘ not straighten ’’ and its hodographs
C4
P0
P1
P2
P3

X
1
5
4
6

C4

Y
3
8
1
5

C4

xM(t) = f(t) = 8t³ -15t² + 12t + 1
yM(t) = g(t) = 23t³ -36t² + 15t + 3

y

courbe de type 2

a = y3
x3 =

23
=>
8

α

≈ 70,821°

-36
=>
-15
15
c = y1
x1 = 12 =>
y0
d = x0 = 13 =>

β

≈ 67,380°

γ

≈ 51,340°

δ

≈ 71,565°

b = y2
x2 =

NB :

α

H2

x

o

échelle : 10

H1

a = C4’’’

Method for simplify and straitghten a curve B3 by rotation and translation.
Apply a rotation * of (90 ° -α) ≈ 19 ° 179 from center P0
C4
P0



P1
P2
P3

X

Y

0
2,14
3,49
4,07

0
6,04
-0,90
3,53

1
3

and a translation of -P0
y

-1
-3

C4

C4

f(t) ≈
0 t³ -2,34 t² + 6,41 t + 0
g(t) ≈ 24,35 t³ -38,93 t² + 18,11 t + 0

x

o

échelle : 5

H2
H1

With a rotation of -α the coefficient y3 will be zero.

A Similarly, a rotation involving β the coefs. x2 or

y2 will be = 0

etc ...

These parameter changes can simplify equations
especially to determine the crossing point of a type 4 curve (see page 15)
In fact, the affine invariance of the parameter t allows these changes.
We can in some cases express an equation in a different way and arrive indirectly
to a result to return to a direct method.
* Rotation using a base change formula (see page 35)

9

9

Intersection of a straight line with a B3, calculation of the parameter t
It is very useful to determine the parameter t of a point on the curve whose abscissa or ordinate is known
This involves calculating the intersection of the curve with a line of equation x = x(M) ou y = y(N)
Example 1
C4

X

Y

1
5
4
6

P0
P1
P2
P3

C4

3
8
1
5

2
?

M

N1

N2

N3

y=4,5

M

xM(t) = 8t³-15t² + 12t + 1 = 2

So you have to solve:

with

C4

C4

8t³ -15t² + 12t - 1 = 0
t ≈ 0,0938 =>

=> 1 real solution:

Example 2

xM(t)= f(t) = 8t³ -15t² + 12t + 1
yM(t) = g(t) = 23t³ -36t² + 15t + 3

1

and

N

M

2
4,11

y

0

?

x=2

x

scale : 10

4,5

yM(t) = 23t³ -36t² + 15t + 3 = 4,5
t ≈ 0,1470

t ≈ 0,4660

1

23t³ -36t² + 15t - 1,5 = 0 => 3 real solutions :

2,47
4,5

N1

t ≈ 0,9523

2

3

4,14
4.5

N2

N3

5,73
4.5

Intersection of a B3 with a straight line defined by a point E and its coef. director a

M3

Example 3

C4
Solve :

xM(t) =f(t) = 8t³ -15t² + 12t + 1
yM(t) =g(t) = 23t³ -36t² + 15t + 3

yC4 - yD
xC4 - xD

E

2
3

a =1
M1

=a

=> (y3-ax3)t³+ (y2-ax2)t²+(y1-ax1)t+(y0-ax0-yE+xEa) = 0

E

2
3

C4

By developing => 15t³ - 21t² + 3t + 1 = 0
=> 3 real solutions:
t ≈ 0,3692
1

M1

3,78
4,78

t ≈ -0,1526
2

M2

-1,21
-0,21

t ≈ 1,1834
3

M3

7,45
8,45

o
M2

x
scale : 10

Intersection of 2 curves B3
An algorithm is essential => https://pomax.github.io/bezierinfo/#intersections
advantage: the algorithm calculates over the interval [0 1] so no confusion is possible.

10

10

We can see that the calculation of t often involves 3 solutions.
And to avoid some confusion I have located the examples of curves in the first quadrant of the trigonometric circle.
This implies that the computation of t with the canonical definition f (t) accepts only one solution over the interval [0 1].
Hence the usefulness sometimes of making a parameter change by rotation and or translation to perform certain calculations.
In reality, especially in the field of design with “vector” software, only the portion continues
curves are used (in majority they are type 2 or 4 curves).
If by calculation a stationary point is located on [0 1] it is preferable to divide the curve at this point.

Estimate of the parameter t
In some calculations, it is sometimes necessary to estimate the parameter t of one or more points.
Here are 2 methods:
Example 1: method of the orthogonal projection on M0M3

M3
M2

||M0M3||≈49,82

||M0M1||≈16,13
α ≈ 11,171°

||M0M1|| COS(α)

t(M1) =

β ≈ 1,754°

M2’

M1

≈ 0,3175

||M0M3||

t(M2) =

||M0M2||≈35,47

||M0M2|| COS(β)

α

≈ 0,7116

||M0M3||

β

M0

M1’

M1
M2
M3

M0

X

Y

1
9
24
40

13
27
40
44

Example 2: distance method
scale 2

With :

t(M1) =

||M0M3||≈49,82
||M0M1||
||M0M3||

||M0M1||≈16,13

≈ 0,3237

t(M2) =

||M0M2||≈35,47

||M0M2||
||M0M3||

≈ 0,7119

And also with: ||M0M3||≈49,82 ||M3M1||≈35,36 ||M3M2||≈16,49

t(M1) = 1 -

11

||M3M1||
||M0M3||

≈ 0,2903

t(M2) = 1-

||M3M2||
||M0M3||

≈ 0,6690

We can observe
that the method of standards generates 2 solutions.
We could for example
average the 2 estimates of t.

t(M1) average ≈ 0,3070
t(M2) average ≈ 0,6905

11

Parabola B2: calculation of its axis A, vertex S and focus F
Calculation of the vertex S
the directing coeff. of axis A of the parabola = a =

yC2’’
xC2’’

The tangent to the vertex S = d =

1

a

Using the equation of the first derivative d and calculating the parameter t of the vertex S

d=

2t (yA0 - 2yA1 + yA2) + 2(yA1 - yA0)
2t (xA0 - 2xA1 + xA2) + 2(xA1 - xA0)

Example

C2

X

Y

A0
A1
A2

6
87
60

36
81
9

S

62,6

therefore t(vertex) =

a=

117
108

d=

d(xA0 - 2xA1 + xA2) - (yA0 - 2yA1 + yA2)

108
117

therefore t(vertex) ≈ 0,552716

50,0

xM(t) = -108t² + 162t + 6
yM(t) = -117t² + 90t + 36

C2

(yA1 - yA0) - d(xA1 - xA0)

S

xS(tvertex) ≈ 62.547
yS(tvertex) ≈ 50.002

Calculation of the focus F
You should know that the intersection of a tangent to C2 (for example A2A1) with its axis A => L
and that + of the perpendicular bisector of A2L with the axis A of the parabola is its focus F

Example*

X

L= (S ;

F= (S ;

a ) + A2A1

a) +

mediator of A2L

Y

coef dir.

A2

60

9

2.6667 (coef dir. de A2A1)

S

62.55

50.00

1.0833 (a)

L

84.15

73.41

X

Y

S
M

62.55
72.08

50
41.2

F

58.96

46.12

K

66.13

53.88

coef dir.

1.0833 (a)
-0.3750 (-1÷ 2.6667)

And we can also calculate the point K located on the director and which is the symmetric of F with respect to S

12

*see page 24 intersection of 2 lines using the Delambre formula.

12

A1
L

C2

K

S
F

Di

re

M

A0

ct

or

D

S
is

ax

y

A

xM(t) = -108t² + 162t + 6
yM(t) = -117t² + 90t + 36

xS ≈ 62.547
yS ≈ 50.002

α
A2

x

scale 1

Calculation of focus F : indirect method
First, the top of the parabola must be at the origin of the coordinate system and its axis A
must coincide with the OY axis.
So we are going to make a base change with a rotation of
whose center Ω is the vertex S and a translation of -xS and -yS.
with α = arctan ( 117
108 ) ≈ 42,7094°
y

So in this case with Ω = S
scale 1

S’

xS ≈ 62,547
yS ≈ 50,002

Δx ≈ - 62,547
Δy ≈ - 50,002

x

F’

A0’

xA0’= cosα (xA0 - xS) - sinα (yA0 - yS) ≈ -32.054

yA0’= sinα (xA0 - xS) + cosα (yA0 - yS) ≈ -48.643
xA3’

≈ 32,054
yA3’ ≈ -48,643

A3’is the symmetric of A0’

By interpolating the points A0 ’, S’, A3 ’ by Newton’s method

A0’

A3’

the parameter a of the parabola =
the focus is defined by: F’

yA0’
(xA0’)²

≈ -0,047344

x F’= 0
(xA0’)²
≈ -5,281
y F’= 1 =
4a 4 yA0’

So directly with A =(xA0 - xS) , B =(yA0 - yS) , and its vertex S
x F= sin(α) (y F’) + xS =

F

(cosα A - sinα B )²
+ xS
4 ( A + cotanα B )

(cosα A - sinα B )²
y F= cos(α) (y F’) + yS = 4 ( tanα A + B ) + yS

NB: the calculation can be done on R² with A0 = any point of the parabola except its vertex.
13

13

Stationary and crossing point of a B3
To determine the stationary points use the following formula : the determinant of
Avec :

x’= f ’ = 3 x3 t² + 2 x2 t + x1 et

(t)
B3’ => y’= g’(t)
= 3 y3 t² + 2 y2 t + y1

x’’= f ’’(t) = 6 x3 t +2 x2 => f ’(t) f ’’(t) = f ’(t) g’’(t) g’(t) f ’’(t) = 0
g’(t) g’’(t)

B3’’=> y’’= g’’(t) = 6 y3 t +2 y2

At ² +Bt + C = 0

develop : => ( x2y3 - x3y2 ) t ² +( x1y3 - x3y1 ) t + ( x1y2 - x2y1 )/3 =
If Δ>0 et A=0 => 1 inflexion pt.
If Δ>0 et A≠0 => 2 inflexions pts.

B3’(t) , B3’’(t) =0

If A =0 et B =0 => 1 parabolic arc

If Δ=0 => 1 peaked pt.
If Δ<0 => 1 crossing pt.

P1

1) type 1 curve (accepting an inflection point)

C31
P0
P1
P2
P3

X

Y

1
5
5
9

5
10
0
5

C31

f(t) = 8t³ - 12t² + 12t + 1
g(t) = 30t³ - 45t² + 15t + 5

I
P0

5
5

P2

x’ y’’ - y’ x’’ => 0t² + 240t - 120 = 0 (Δ=57600 et A=0)
=> t1 = t2 = 0,5
1 inflexion point in I(0,5)

P3

5
5

scale 6

2) type 2 curve (accepting two inflection points)

C32
P0
P1
P2
P3

X

Y

1
3
1.6
5

1
3
2.5
2

P1

C32

f(t) =8,2t³ - 10,2t² + 6t + 1
g(t) = 2,5t³ - 7,5t² + 6t + 1

I2

P2

I1

P3

x’ y’’ - y’ x’’ => 36t² - 34,2t + 5,4 = 0 (Δ=36)
=> t1 ≈ 0,2
I1

2 inflexions points

t2 ≈ 0,75
1.858
1.920

I2

P0

3.222
2.336

scale 15

3) type 3 curve (accepting a peaked point )

C33
P0
P1
P2
P3

X
1
9
1
9

Y
1
5
5
1

C33

f(t) = 32t³ - 48t² + 24t + 1
g(t) = 0t³ - 12t² + 12t + 1

P2

R

P1

x’ y’’ - y’ x’’ => 384t² - 384t + 96 = 0 (Δ=0)
=> t = 0,5
14

1 peak in R

5
4

P0
P3
scale 6

14

4) type 4 curve (accepting a crossing point or double point)

C34
P0
P1
P2
P3

X

Y

4
7
1
7

2
6
4
3

C34

f(t) = 21t³ - 27t² + 9t + 4
g(t) = 7t³ - 18t² + 12t + 2
D

Double point calculation

x’ y’’ - y’ x’’ => 189t² - 189t + 54 = 0 (Δ= -5103)

f(t1) = f(t2) => x3t1³+ x2t1²+ x1t1 + x0 = x3t2³+ x2t2²+ x1t2 + x0
g(t1) = g(t2) => y3t1³+ y2t1²+ y1t1 + y0 = y3t2³+ y2t2²+ y1t2 + y0
f(t1) - f(t2) = 0 => x3 (t1³- t2³) + x2 (t1²- t2²) + x1(t1 - t2) = 0
f(t1) - f(t2) = 0 => x3 (t1²+ t2²+t1t2) + x2 (t1 + t2) + x1 = 0

Now the aim is to define t2 from t1 , so we will make sure that in ( f(t1) - f(t2))
by applying a rotation ( π2 - α ) on ( f(t1) - f(t2)) with tan (α) = y3/x3
A l’aide de la formule du changement de base (rotation des axes)

x3 = 0
X2 = x2 sin(α) - y2 cos(α)
X1 = x1 sin(α) - y1 cos(α)

=>

Therefore f(t1) - f(t2) => X2 (t1 + t2) + X1 = 0 => t2 = - X1 -t1
X2

{

Solve

x3 (t1²+ t2²+t1t2) + x2 (t1 + t2) + x1 = 0
t2 = - X1 -t1
X2

x1
x2
t1² t1
=0
+ G +
+
x3 G x3
G

=>

with

x2 tan(α) - y1
G = X1
=
X2
x1 tan(α) - y2

or

t1² + Gt1 + G² +

x1 y3 - y1
x1y3 - y1x3
x3
=
=
y3
x2y3 - y2x3
x2 - y2
x3

x1 - x2 G
=0
x3
P1

C34

Example with
=>

f(t) = 21t³ - 27t² + 9t + 4
g(t) = 7t³ - 18t² + 12t + 2
P2

G = -1

P3

=> -t1² + t1 - 1 = 0 ( Δ= 37 )
7

=> t1 ≈ 0,1727

P0

t2 ≈ 0,8273

1 crossig point in D

α

4.857
3.571

P1

5) type 5 curve (parabolic arc)
Example

C2
P0
P1
P2
P3

C2

P2
X

Y

6
60
78
60

36
66
57
9

P0

f(t) = 0t³ - 108t² + 162t + 6
g(t) = 0t³ - 117t² + 90t + 36

x’ y’’ - y’ x’’ => 0t² + 0t - 3078 = 0
15

scale 10

P3
scale 1

15

Recursive subdivisions of a B2 with the ‘‘ De Casteljau ’’ method [1]
This method makes it possible to calculate the coordinates of a point M(t)
without going through the traditional equations.
The points A0 A1 A2 are the definition points of a parametric curve B2
And B a point on this curve with parameter t = 0.4

A1
t (A1 - A0) + A0

Q2 = (1-t)A1 + t A2

ou

t (A2 - A1) + A1

B = (1-t)Q1 + t Q2

ou

t (Q2 - Q1) + Q1

)

1- t

1(
A 0A

2t

ou

A1A

Q1 = (1-t)A0 + t A1

Q1
Q1Q2 t

X

Y

P0
P1
P2

6
87
60

36
81
9

Q1Q2 (1- t)

Q2
A 0A

B(0.4)

1t

A0

X
38,4
76,2
53,5

Y

A1A

C2

therefore with t = 0.4
Q1
Q2
B

2 (1-

t)

C2

y

54
52,2
53,3

A2
x

scale 1

Recursive subdivisions of a B3
The points P0 P1 P2 P3 are the points of definition of a parametric curve of a B3
and M a point on this curve with parameter t = 0.4

Q1 = (1-t)P0 + t P1
Q2 = (1-t)P1 + t P2
Q3 = (1-t)P2 + t P3
S1 = (1-t)Q1 + t Q2

P1

Q2

P2
S2

Q3
S1

S2 = (1-t)Q2 + t Q3

M(0,4)

41,9
42,7

C3

M = (1-t)S 1 + t S 2
Q1
therefore with t = 0.4
X

Q1
Q2
Q3
S1
S2
M

22
46
74,4
31,6
57,4
41,9

P0

Y
27,6
54
42,8
38,2
49,5
42,7

P1
P2
P3

X

Y

14
34
64
90

10
54
54
26

P3

P0

scale 1.5

And therefore we can divide the curve C3 into M(0,4) into 2 curves defined by:
16

C3a P0 Q1 S1 M
C3b M S2 Q3 P3

16

Some applications for a B3
Method for calculating the definition points of the curves C3a and C3b with C3 and t=0,4

C3
P0
P1
P2
P3

X

Y

14
34
64
90

10
54
54
26

A0 = P0
A1 = t (P1-P0) + P0
A2 = t[ t(P2-P1) + P1 - A1]+A1
A3 = M(t)

X

A0 14
A1 22
A2 31,6
A3 41,904

Y

B1

10
27,6
38,160
42,704

B2
A2
A1

C3b

X

Y

C3b

A3 = B0

C3a

with t = 0,4
B0 = M(t)
B1 =(1- t)[t(P2-P1) + P1 - B2]+B2
B2 = t (P3-P2) +P2
B3 = P3

P2

P1

C3a

P3= B3

P0 = A0

B0 41,904 42,704
B1 57,360 49,552
42,8
B2 74,4
26
B3 90

échelle 3/4

We notice that A2 is on the parabola defined by P0 P1 P2 and B1 on the parabola P1 P2 P3

Method for extending a curve B3 to point E of parameter t >1
C2
C1

C3a

X

P0 14
P1 22
P2 31,6
P3 41,904

Y
10
27,6
38,160
42,704

P2

t into E = 2 therefore E(2)

74,032
39,312

P3
C3=E

C3a bis

P1

C0

avec t = 2

C1
C2

C0 = P0
C1 = t (P1-P0) + P0
C2 = (1-t)C1 +t(1-t)P1 + t²P2
C3 = E(t)

C0=P0

C3

X

Y

14
30
52,4
74,032

10
45,2
52,240
39,312

scale 1

Method for extending a curve B3 to the point H of parameter t <0

C3
P0
P1
P2
P3

D2

D1

X

Y

14
34
64
90

10
54
54
26

P2
P1

3,312

t into H = -0.2 therefore H(-0.2) -21,808

C3 bis

with t = -0.2

D0 = H(t)
D1 = (1-t)²P1 + t(1-t)P2 + tD2
D2 = t (P3-P2) +P2
D3 = P3

P0
scale 3/4

D0

D 3 = P3

X

Y

3,312 -21,808

D1 21,840 52,880
D2 58,8 59,6
D3

90

26

D0 =H

17

17²

Fusion of 2 B3 curves
The De Casteljau subdivision involves a simple formula for carrying out this fusion
Example 1: either 2 curves A and B having a connection of class C1 (A3’= B0’).

A
A0
A1
A2
A3

X

Y

8
25
40
56

18
30
35
35

B
B0

x = f(t) = 3t³ - 6t² + 51t + 8
y = g(t) = 2t³ - 21t² + 36t + 18

A

B1
B2
B3

X

Y

56
72
92
104

35
35
30
14

x = f(t) = -12t³ + 12t² + 48t + 56

B y = g(t) = -6t³ - 15t² + 0t + 35

with the help of the recursive subdivision of B3 we can "naively" join A and B B posing:
B2 - tB3
B2= t(B3-P2) +P2 => P2 =
(1-t)

A1= t(P1-A0)+A0 => P1 = A1-A0 (1-t)
t

t=

||A2A3||
||A2A3||+||B0B1 ||

= 0,5

P2
P1

P

A2

P

B1

P0
A1

A3=B0

A

B2

B

=>

P1
P2
P3

X

Y

8
42
80
104

18
42
46
14

x = f(t) = -18t³ + 12t² + 102t + 8

P y = g(t) = -16t³ - 60t² + 72t + 18

A0=P0
B3=P3
scale 1

NB: this method respects the tangents in P0 and B3 but P does not pass through A3.
We will see in the curve section passing through 3 points on page 29 that it is possible to vary P1 or P2.
So that Pbis passes strictly through A3, while keeping the tangents in P0 and P3 (see below).

Pbis
P0
P1
P2
P3

X

Y

Pbis

variation on P1

8
18
34,61 36,78
80
46
104
14

P0
P1
P2
P3

t in A3 ≈ 0,4907912

X

Y

variation on P2

8
18
42
42
84,02 40,64
104
14

t in A3 ≈ 0,4496878

Example 3: same as Example 1 but with a class C0 connection :

A
A0
A1
A2
A3

X

Y

8
25
40
56

18
30
40
35

B
B0

+

B1
B2
B3

t=

X

Y

56
72
92
104

35
40
30
14

||A2A3||
||A2A3||+||B0B1 ||

P
P0

=>

P1
P2
P3

X

P2

Y

8
18
42,57 42,40
80,39 45,48
104
14

P1
A2
A1

A

P
A3=B0

B1

B

B2

= 0,5
A0=P0
B3=P3
scale 0,5

In this case, personally, I think that the result is correct visually, because the fusion is best suited to curves A and B.

18

18

Distance from a point to a curve B3.
When smoothing a series of points by approximation with one or more B3 curves it is often useful
to know if the starting points are not too far from the calculated B3.
This implies that a tolerance of +/- λ must be set.
Example: with a curve P and a point M

56
35
P2

P
P0
P1
P2
P3

P1

X

Y

8
42
80
104

18
42
46
14

x = f(t) = -18t³ + 12t² + 102t + 8

P
M

P y = g(t) = -16t³ - 60t² + 72t + 18

P0
P3
scale 1

The problem is to calculate the point M ’ located on the curve P whose «normale» pass through the point M.
Let us determine the equations to solve the problem.
the «normale» at a point of parameter t of P =We can therefore put :

-

f ’(t)
f(t) - xM
=
g’(t)
g(t) - yM

f ’(t)
g’(t)
=> f ’(t) ( g(t) - yM ) + g’(t) ( f(t) - xM ) (t) = 0

Using the canonical definition of a B3
=> (3x3t²+2x2t+x1)(y3t³+y2t²+y1t+y0-yM ) + (3y3t²+2y2t+y1)(x3t³+x2t²+x1t+x0-xM ) = 0

=> h (t) = 3(y3²+x3²) t5 + 5(y3y2 + x3x2 ) t4 + [ 4(y3y1+x3x1)+2(y2²+x2²) ] t3

+ [ 3(y2y1+y3(y0-yM) + x2x1+x3(x0-xM) ] t2 + [ y1²+2y2(y0-yM)+x1²+2x2(x0-xM) ] t +y1(y0-yM)+x1(x0-xM)

In our example =>

h(t) = 1740t5 + 3720t4 - 4464t3- 5880t2 + 16476t - 6120
h’(t) = 8700t4 + 14880t3- 13392t2 - 11760t + 16476

And by solving h(t)=0 by Raphson Newton's method => t(M’ )≈ 0,4617252

M’≈

55.882
36.878

[5]

therefore ||MM’|| ≈ 1,882

M’

In this example there is only one solution on the interval [0 1].

scale : 6

19

M
19

Vector velocity, acceleration, radius of curvature (osculating circle) [4]

C3
P0

example with :

P1
P2
P3

X

Y

14
34
64
90

10
54
54
26

+30t²+60t+14
M(t) xy == gf(t)(t) == -14t³
16t³-132t²+132t+10

The velocity vector of a curve B3 at a point M(t)
is the distance of the prime derivative vector at point M(t)
= f ’(0,3) = -42t²+ 60t + 60 = 74,22
M’(0,3) x’
y’ = g’(0,3) = 48t²- 264t + 132 = 57,12

his distance ≈ 93,66
P1

P2
M(0.5)

The acceleration vector of a curve B3 at a point M(t)
is the distance of the second derivative vector at point M(t)

C3

M(0.3)

= f ’’(0,3) = -84t+60 = 34,8
M’’(0,3) x’’
y’’ = g’’(0,3) = 96t-264 = -235,2

his distance ≈ 237,76

R
P3

Ω

calculation of the curvature radius R at a point M(t)

R in M(t) =
with

P0

(x’ ² + y’ ² )3/2

scale 1

x’ y’’ - y’ x’’

= f ’(0,5) = 79,5
= f ’’(0,5) = 18
M’(0,5) x’
M’’(0,5) x’’
y’ = g’(0,5) = 12
y’’ = g’’(0,5) = -216

R in M(0.5) =

519729,318

≈ 29.89

-17388

Calculation of the curvature center Ω
In Frenet's benchmark in

M(0,5) 49.75
45

we have

N

(-y’ )C
= -12(1)
≈ 0,15
80,4
(x’ ² + y’ ² )0,5
(x’)C
= (79.5)(1) ≈ -0,99
80,4
(x’ ² + y’ ² )0,5

NB: if at point M(t) x'y"-x"y'<0 the curve is concave in M (t) then C= 1 if not C= -1

Ω(0,5)

(xN)(R)(1)+xM(0,5) = 54.21
(yN)(R)(1)+yM(0,5) = 15.44

So directly:

x Ω(t) =
20

(x’ ² + y’ ² ) (-y’)
+ x M(t)
x’ y’’ - y’ x’’

y Ω(t) =

(x’ ² + y’ ² ) (x’)
x’ y’’ - y’ x’’

Sources : http://prof.math.free.fr/textes/cours/normal/courbure_html/index.html

+ yM(t)

20

Parameterization of a second or third degree function on a bounded interval.
Example
Let be the function: f(x) = 2x³ + 3x² + x +1 that we want to parametrize on the interval [-1 0,5].

Y

To get there we will use the matrix definition of a B3
by choosing 4 points: M0 which is at the start of the interval
M1 , M2, 2 intermediate points and M3 at the end of the curve B3
M0

a) calculation of OM(t)

M1
M2
M3

X

f(x)

-1
-0,5
0
0,5

1
1
1
2,5

M3

C

M1
M0

b) calculation of the parameters t in M0, M1 , M2, M3

M2

In this case, the calculation is simple because t is proportional to the abscissa.
X
scale : 20

t in M0 = 0 t en M3 = 1
t in M1 =

xM1 - xM0
0,5
1
=
=
xM3 - xM0
1,5
3

t in M2 =

xM2 - xM0
1
2
=
=
xM3 - xM0
1,5
3

t
0
1/3
2/3
1

1 t
t² t3
1 0 0 0
1 0,33 0,11 0,037
1 0,67 0,44 0,296
1 1 1 1
wn

therefore Os = wn × p 3

-1

-1 -0,5 0 0,5

passage matrix

1
-3
×
3
-1
p3

× OM(t)

0
3
-6
3

0
0
3
-3

0
0
0
1

×

xP
xP0
xP1
xP2
xP3

yP
yP0
yP1 =
yP2
yP3

xM(t)
-1
-0,5
0
0,5

Os

=>

OM(t)

C

X

Y

P0

-1
-0,5
0
0,5

1
1,5
-0,25
2,5

P1
P2
P3

yM(t)
1
1
1
2,5

C is a B3 type 1.

NB: for a parabola the method is identical.

The converse is possible using a Hermite or Lagrange type interpolation.
But to have coherent results the Bézier curve must be of type 1 or 5 and "straitghten".

21

21

B3 Area
There are several methods to calculate the area of a B3.
in particular the form : area = 12
And also

f

a

b

f

0

1

(g(t) f(’t) - f(t) g’(t)) which calculates the area of a closed B3.

( g(t) f(t)’ ) allowing a calculation over a given interval [a b]

But whatever the method used and to have convincing and understandable results it is preferable
to perform a parameter change of the curve by translation of -xP0 et -yP0.

a) Area of a closed B3 curve over its definition range [ 0 1] (WEB méthod).
P1

P2

C3

By exceptionally posing : X0 = X0 =xP0 , Y0=yP0 ; X1 =xP1 , Y1=yP1 etc...
Area = 3 / 20 [ (Y1-Y0) ( X2 + X3 -2X0)
- (X1-X0) (Y2 + Y3 -2Y0)
- 2[ X0(Y2-Y3) + Y0(X3-X2) + Y3X2-Y2X3 ] ]

P3
P0

C3

scale 1/2

P0

NB: The translation of - P0 is integrated into the formula and works on R²

P1
P2

In this example Area of C3 = 1414.8 mm²

P3

Source :

14
34
64
90

10
54
54
26

http://objectmix.com/graphics/133553-area-closed-bezier-curve.html

b) Area of a closed B3 curve accepting an inflection point on its domain of definition [0 1].
Area of C4 = 1,2 mm²

A1

y
En fait c’est l’aire du segment de courbe de P0 à M = A1
+ l’aire du segment de M à P3 = A2

P0

C4

A1 ≈ 2,177 et A2 ≈ - 0,977 therefore A1 + A2 = 1,2 mm²

P0
P1
P2

Point M is the intersection of line P0P3 with C4 .

P3

M(t)

d=

g(t) - yP0
g(t) - y0
=
f(t) - xP0
f(t) - x0

=>

This polynomial accepts 2 real roots :

d

yP3 - yP0
= xP3 - xP0

22

Y
3
8
1
5

x

P0

et

t2= 1

scale : 10

=> At³+ Bt²+ Ct = 0

=> (0- t)(1- t) = (t²- t)

so we can divide At³+Bt²+Ct by ( t²- t) => A t3 + A+B = 0 therefore

In this example

X
1
5
4
6

xP0=x0
yP0=y0

(y3- dx3)t³+(y2- dx2)t²+ (y1- dx1)t = 0

t1= 0

A2

o

Here is its calculation in the general case.

x = f(t) = x3t³+x2t²+x1t+x0
y = g(t) = y3t³+y2t²+y1t+y0

P3

M

What does this figure represent?

xM(t) = 8t³ -15t² + 12t + 1

C4 yM(t) = 23t³ -36t² + 15t + 3

(y2- dx2)
t3 = - ( 1+ B )= - ( 1+ (y3- dx3) )
A

d=0,4 t (M) ≈ 0.51515151 M

4,295
4,318

22

c) Area of a curve B3 over an interval [a b].
c) Aire d’une courbe B3 sur un intervalle [a b] .
b

Using the formula: area = f ( g(t) f(t)’ ) and the canonical definition of a B3
a

t³+x2t²+x1t+x0
M(t) fg(t)(t) == x3
y3t³+y2t²+y1t+y0

g(t) f (’t) = h(t) =3x3y3t5+(3x3y2+2x2y3)t4+(3x3y1+2x2y2+x1y3)t3+(3x3y0+2x2y1+x1y2)t2+(2x2y0+x1y1)t +x3y0
H(t) = 3x3y3t6+(3x3y2+2x2y3)t5+(3x3y1+2x2y2+x1y3)t4+(3x3y0+2x2y1+x1y2)t3+(2x2y0+x1y1)t2 +x3y0 t +C
6
5
3
2
4
In this example :

f(t) = -3t³+ 6t²+ 3t + 0
g(t) = -3t³-3t²+ 6t + 0

C5

y

P0
P1
P2

h(t) = 27t5- 9t4- 99t3+ 63t2+18t + 0
H(t) = 4,5t6-1,8t5- 24,75t4+ 21t3+ 9t2+ C

C5

P3

x

o

X

Y

0
1
4
6

0
2
3
0

scale : 10

The area of C5 over the interval [0,2 0,6] = H(0,6) - H(0,2) ≈ 4,15 mm²

Curvilinear abscissa

s or length of an arc of a B3.

the theory is that the arc length of a parametric curve =

For a curve B3

b

s = f √( f’ )²+(g’ )²
a

(t)

=

(t)

f

b

f √( dxdt )²+( dydt )² dt
a

b

a

√ ( 3x3t²+2x2t+x1 ) ² + ( 3y3t²+2y2t+y1 )²

NB: the variables a and b are the values of the parameter t

But in practice it is almost impossible to calculate this integral so we have to
to make an approximation.
For my part I divide the curve into 100 parts over the interval [a b] with a step of (b-a) / 100.
I calculate the coordinates of the corresponding points M going from M0 à M100.
I determine the circle center passing through M0 M1 M2
So I can calculate its radius, the M0 M2 rope , its angle at the center θ and finally its length.
Example with C5 on the interval [0,2 0,6] => step = (0,6 - 0,2) / 100 = 0,004
So

23

s of C

5

on [0,2 0,6] ≈ 2,705 mm

t
0,200
0,204
0,208
0,212
0,216

n
0
1
2
3
4

xM
0,8160
0,8362
0,8566
0,8771
0,8977

yM
1,0560
1,0737
1,0912
1,1086
1,1258

0,584
0,588
0,592
0,596
0,600

96
97
98
99
100

3,2008
3,2286
3,2564
3,2842
3,3120

1,8833
1,8809
1,8782
1,8752
1,8720

xC

yC

rope

radius

θ

arc length

3,15

-1,60

0,05

3,53

0,015 rad

0,05

3,15

-1,59

0,05

3,53

0,015 rad

0,05

2,96

-1,07

0,06

2,97

0,019 rad

0,06

2,96

-1,08

0,06

2,97

0,019 rad

0,06

23

Arc circle simulation with a B3*
(to have good accuracy the angle at the center of the arc must be ≤ 90 °)

Preliminary calculations with

X

Y

M1
M2
M3

1
4
8

1,5
6
7

M3

=

Pts

=
M2

=

The center Ω of the circle passing through M1 M2 M3 is determined
by the intersection of the perpendicular bisectors of M1M2 and M2M3.

β

B

A
α

Calculation of the intersection by the Delambre method.
=

xΩ = xA+

(yA-yB)-(xA-xB)tan(β)
≈ 7,525
tan(β)-tan(α)

yΩ =

radius R =||M1 Ω|| ≈ 6,617 rope C = ||M1M3|| ≈ 8,902
C

θ = 2 arcsin( 2R ) ≈

θ

y

yA+ (xΩ-xA)tan(α) = 0,4

M1

Ω

scale 10

84,542°

Calculation of the B3
Tip: not knowing the parameter t in M2 determine the point M2’
which is on the bisector M1 Ω M3.. (

Calculate the following oriented angles :
Pts

X

Y

1
P0= M1
1,5
M2’ 3,437 5,603
P3= M3
8
7
2
7,432
I

= 0,5) .

t in M2’

α0 ≈ 80,431° et α3 ≈ 175,884 °

Bernstein polynomial with t=0.5

B0

B1

B2

B3

(1-t)³
0,125

3t(1-t)²
0,375

3t²(1-t)
0,375


0,125

With P1 et P2 determined by polar coordinates:

=> xM2’ = B0 xP0 + B1 (φ0 cos(α0)+xP0) + B1 (φ3 cos(α3)+xP3) + B3 xP3
xM2’- 0,5 ( xP0 + xP3)
≈ 3,410940045
=> φ0 = φ3 =
α0
α3
0,375 [cos( )+cos( )]

X
P0

=>

P1
P2
P3

1
1,567
4,598
8

Y
1,5
4,863
7,245
7

* Other methods exist among others that of Mr. Krauss see::
http://d.krauss.free.fr/documents/Transverses/Bezier/Arc_cercle/Arc_Cercle.htm

24

24

Voici la méthode Krauss
with : S = sin(θ) , C=cos(θ)
x = -0.118433799202707
K° = 1 [-S +√S²+ 6(1-C)
3
K1 = 4 tan( θ4 )
3

]

α = 6 ( 3K° + S )
β = 9 ( 1-C)K1 + 12 S )
Kidéal =

βK1 - α x K°
β-αx

φ0 = φ3 = Kidéal . Radius ≈ 3,409176983

t
0
0,1
0,2
0,3
0,4
0,5
0,6
0,7
0,8
0,9
1

ΔR perso
0,00000
0,00069
0,00123
0,00094
0,00031
0,00000
0,00031
0,00094
0,00123
0,00069
0,00000

ΔR Krauss
0,00000
0,00058
0,00088
0,00032
-0,00051
-0,00089
-0,00051
0,00032
0,00088
0,00058
0,00000

difference
0,00000
0,00011
0,00036
0,00062
-0,00020
-0,00089
-0,00020
0,00062
0,00036
0,00011
0,00000

α3
I

P2

φ3
P3

θ
2

M2’

P1

φ0

α0

y

θ
2

P0

scale 20
25

θ
2

Ω
25

La clothoïde

[2] [3]

Avant propos.
Y

The peculiarity of a clothoid, also called a "Cornu" spiral,
is that its radius of curvature is progressive as
we advance on the curve.

I

That’s why in public works (survey)
the beginning of the spiral is used to connect road axes
by a curved part allowing to approach a circular part
gradually without sudden change of direction.

O

X

I’

Legislation requires a turn with a radius of curvature
minimum to be observed for each road category.
For example, in france, for a motorway of category L120 where the speed
is limited to 130 km / h the radius of the circular bend must be > = 665m.

Some mathematical definitions [2] [3] [geogebra].
coordinates of I : x = y =

Example 1

A√π
2

Y

A is called the clothoid parameter

s the curvilinear abscissa of the clothoid
r its radius of curvature
τ the angle in radians of a tangent to the curve
The intrinsic equation of the spiral is: s r = A²
τ = s² = s
2A² 2r

I

Soit :

r(35) = 45.71

M(35)
O

τ(35) = 21°, 93
X

The coordinates of a point on the curve are:

x = fcos S

s² X ds
2A²

y = fsin S

s² X ds
2A²

These so called Fresnel integrals and cannot be expressed from elementary functions,
but calculation using a development limited around 0 is possible:

xM(s) = s - s5 +
40A4

in example 1 with

26

s9 s13
+ ...
3 456A8 599 040A12

s = 35 and A= 40

yM(s) = s3 6A2

s15
s7 + s11 + ...
336A6 42 240A10 9 676 800A14

xM(35) = 34,49

yM(35) = 4,42

τ(35) = 21°, 93

r(35) = 45.71
26

Simulation of a clothoid arc by a B3.
Example 2
Let an arc of radius 32 m that we want
connect with a clothoid with parameter 35,5 ..

τ

39,383
≈ 35,257°
2*32

(39,383)

=

xM(39,383) ≈ 37,917

32

therefore s(32) = 35,5²/32 ≈ 39,383 m

=
ius
rad

s r = A²

scale 1/500

D2

yM(39,383) ≈ 7,862

M
P3

τ
P0

P1

M’

P2

D1

Bézier curve définition
Let: the lines D1 , D2 and M’ which is the orthogonal projection of M on the line D1

P0 is at the origin of the clothoid
P1 is at 1/3 of P0M’
P2 is at intersection of D1 et D2
P3 is the point M

X
P0

therefor the Bézier curve ≈

P1
P2
P3

Y

0
0
12,639 0
26,796
0
37,917 7.862

Comparative tables
Traditional calculation
param. A

35,5

curvilinear abscissa every

5m

radius of the circular arc to be connected 32 m

s

X

Y

τ

0,00

0,000

0,000

0,000°

approximation by the bézier curve
X

Y

Y gap

0,000

0,000

0,000

r
infinis

r

A average
estimate

35,6

s estimate A estimate

infinis

5,00

5,000

0,017

0,568°

252,05

5,000

0,017

-0,001

248,5

5,00

35,3

10,00

9,998

0,132

2,273°

126,03

9,998

0,135

-0,002

128,6

10,00

35,9

15,00

14,988

0,446

5,115°

84,02

14,988

0,446

0,000

86,0

15,00

35,9

20,00

19,950

1,056

9,093°

63,01

19,950

1,048

0,008

63,5

20,00

35,6

25,00

24,847

2,057

14,207°

50,41

24,847

2,038

0,019

49,7

25,00

35,2

30,00

29,620

3,538

20,459°

42,01

29,620

3,515

0,023

40,9

30,00

35,0

35,00

34,182

5,575

27,847°

36,01

34,182

5,563

0,012

35,9

35,00

35,4

39,383

37,917

7,862

35,257°

32,00

37,917

7,862

0,000

34,1

39,389

36,6

τ

We can see that with an angle of ≈ 35° the precision degrades towards the end of the curve.

τ

τ

If ≈ 20° the maximum deviation is 0.014 and with ≈ 40° the maximum deviation is 0.040.
So the precision decreases if increases.

τ

The usefulness of this approximation is that the Bézier curve can be calculated on R² without performing
a change of base by rotation and or translation, from where can be viewed a preliminary project on a small scale.
And also the A ’Medium‘ ’ seems correct to me.
27

But BE CAREFUL: the traditional method is Faith and Law.

27

Bézier curves passing strictly through 3 points
a) Parabola passing through 3 points
1) The tangents in A0 and A2 are free.
In this case there are infinitely many solutions because everything depends on the estimation of the parameter t in M1 .

Example 1
A0 = M0

with

M1
A2 = M2

A1

X

Y

7
22
42

7
26
24

t estimated in M1 = 0,5

M1

xA1 = (xM1-(1-t)² xA0- t² xA2) / 2t(1-t)= 19,5

A2 = M2

yA1 = (yM1-(1-t)² yA0- t² yA2) / 2t(1-t) = 36,5

2) The tangent in A0 is imposed.

A0 = M0

A1

In this case it is necessary to calculate the parameter t in M1 .

Example 2: with the same points as in example 1 and α0 = 85°

A2

To calculate t in M1 it is necessary to solve:

{

xM1 = t²(xA0 + xA2 - 2xA1) + 2t(xA1 - xA0) + xA0
yM1 = t² (yA0 + yA2 - 2yA1) + 2t(yA1 - yA0) + yA0
yA1 - yA0
α0 =
xA1 - xA0

α0
A0

t in M1 ≈ 0,630865
xA1 ≈ 9,298 yA1 ≈ 33,268

=> t² ( α0(xA0 - xA2) + yA2 - yA0) + α0(xM1- xA0) + yA0- yM1 = 0
3) The tangent in A2 is imposed.

A1

Example 3 : with α2 = 140°

α2

t calculation in M1 :

{

A2

xM1 = t²(xA0 + xA2 - 2xA1) + 2t(xA1 - xA0) + xA0
yM1 = t² (yA0 + yA2 - 2yA1) + 2t(yA1 - yA0) + yA0
α2 =

yA1 - yA2
xA1 - xA2

A0

t in M1 ≈ 0,435382
xA1 ≈ 24,015 yA1 ≈ 39,091

=> t² [ α2(xA2 - xA0) + yA0 - yA2] + 2t [ α2(xA0 - xA2) + yA2 - yA0] + α2(xM1 - xA0) - yM1 + yA0 = 0

4) M1 is the vertex of the parabola.

A1

Solve using the 1st and second derivative equations:

{
=>

28

xM1 = t²(xA0 + xA2 - 2xA1) + 2t(xA1 - xA0) + xA0
yM1 = t² (yA0 + yA2 - 2yA1) + 2t(yA1 - yA0) + yA0
g’(t)
f ’’(t)
xA0 = x0 yA0 = y0
=and with xA2 = x2 yA2 = y2
f ’(t)
g’’(t)
+ t3 [( x0 - x2 )² + ( y0 - y2 )²]
- 3t² [( x0² + x0x2 + x0 xM1 - x2 xM1 ) + ( y0² + y0y2 + y0 yM1 - y2 yM1 )]
+ t [( 3x0² - x0x2 - 5x0 xM1 + x2 xM1 + 2xM1²) + ( 3y0² - y0y2 - 5y0 yM1 + y2 yM1 + 2yM1²)]
- (x0 - xM1)² - (y0 - yM1)² = 0

A2

A0

t in M1 ≈ 0,537706
xA1 ≈ 16,817 yA1 ≈ 35,331

28

b) B3 passing through 3 points
5) P1 is fixed and the tangent in P3 is imposed.
Example 5 : with : xP1= 11 yP1= 22 and α3 = 120°

P2

α3

t calculation in M1 :
Solve

xM1 = t³ (- xP0 + 3xP1-3φ3 cos(α3) -2xP3 ) + 3t² ( xP0 - 2xP1 +φ3 cos(α3) +xP3 ) + 3t ( xP1-xP0 ) + xP0
yM1 = t³ (- yP0 + 3yP1-3φ3 sin(α3) -2yP3 ) + 3t² ( yP0 - 2yP1 +φ3 sin(α3) +yP3 ) + 3t ( yP1-yP0 ) + yP0

{

P1

t³ [ α3(xP0 - 3xP1+2xP3)-(yP0 - 3yP1+2yP3 )]
+3t²[ α3(-xP0 + 2xP1-xP3)-(-yP0 + 2yP1 -yP3 )]
+3t [ α3(xP0-xP1)-(yP0-yP1)]
+ α3(xM-xP0)-(yM-yP0)=0

=>

P3

P0

t en M1 ≈ 0,479595
xP2 ≈ 33,679 yP2 ≈ 38,412

therefore xP2 = [ xM1 -(1-t)³ xP0 - 3t(1-t)² xP1 - t³ xP3 ] / [3t²(1-t)] and similarly for yP2

6) P2 is fixed and the tangent in P0 is imposed.
P1

Example 6 : with : xP2= 40 yP2= 34 and α0 = 60°
Solve :

{

P2

xM1 = t³ (2xP0 + 3φ0 cos(α0) - 3xP2 + xP3 ) - 3t² ( xP0 + 2 φ0 cos(α0) - xP2 ) + 3t φ0 cos(α0) + xP0
yM1 = t³ (2yP0 + 3φ0 sin(α0) - 3yP2 + yP3 ) - 3t² ( yP0 + 2 φ0 sin(α0) - yP2 ) + 3t φ0 sin(α0) + yP0

P3

t³[ α0(-xP3 -2xP0+3xP2)-(-yP3 -2yP0 +3yP2)]

α0

=> +3t²[ α0(xP0 - xP2)-(yP0 - yP2)]

P0

+ α0(xM-xP0 )-(yM-yP0) =0

t en M1 ≈ 0,302471
xP1 ≈ 24,472 yP1 ≈ 37,262

Donc xP1 = [ xM1 -(1-t)³ xP0 - 3t²(1-t) xP2 - t³ xP3 ] / [3t(1-t)²] et idem pour yP1

B3 passing strictly by 4 points
Source :

P0 = M0

with

M1
M2
P3 = M3

Solve

{

http://d.krauss.free.fr/documents/Transverses/Bezier/Simulation_Bezier/Simulation_Bezier.htm

X

Y

7
22
36
42

7
26
31
24

In this case it is necessary to estimate t1 in M1 et t2 in M2
Example with

{

P2
M2

t1 = 0,3 et t2 = 0,7

M1

P3

3t1(1-t1)² xP1 + 3t1²(1-t1) xP2 = xM1 - (1-t1)³ xP0 - t1³ xP3

X
P0

3t2(1-t2)² xP1 + 3t2²(1-t2) xP2 = xM2 - (1-t2)³ xP0 - t2³ xP3

P0
P1
P2

a1

=>

P1

(1-t1) xP1 + t1 xP2 = [ xM1 - (1-t1)³ xP0 - t1³ xP3 ] / [3t1(1-t1)]
(1-t2) xP1 + t2 xP2 = [ xM2 - (1-t2)³ xP0 - t2³ xP3 ] / [3t2(1-t2)]
a2

=>

{

xP1 =
xP2 =

a1 t2 - a2 t1

P3

7

Y
7

25,810 36,873
37,476 35,397
42

24

t2-t1

a2(1-t1) - a1(1-t2)

t2-t1

Resp. for the Y

NB: all these strict definitions can generate inconsistent results or zero solutions.
29

29

Smoothing a polygon by dichotomous approximation (digitize).
To fully understand my method I will take the example of a quarter oval defined by 2 arcs of circles.

=>

In my opinion, visually, the result is not correct because I distinguish
"peaks" at the point of tangency of the circles.
So I'm going to "improve" the visual effect by smoothing the quarter oval with a B3.

At first I will choose 7 points which will be used for smoothing.

M4

M5

M6

M7
M4

M3

M5

M6

M7

M1 = P0
M2
M3
M4
M5
M6
M7 = P3

M3

M2

M2

M1

M1

1 A) Following with the formula below
I calculate the parameters of the respective points M(n).

X
0.000
1.502
6.317
12.4
19.349
28.128
40

Y
0.000
6.441
12.215
16.868
20.64
23.613
25

NB: at the start P1 = T
t³ [ α3(xP0 - 3xP1+2xP3)-(yP0 - 3yP1+2yP3 )]
+3t²[ α3(-xP0 + 2xP1-xP3)-(-yP0 + 2yP1 -yP3 )]
+3t [ α3(xP0-xP1)-(yP0-yP1)]
+ α3(xM-xP0)-(yM-yP0)=0

T3

α3

This allows me to calculate
5 possible values:

Then I determine the
5 following distances :

φ3(M2) = || P3 P2(M2) ||
φ3(M3) = || P3 P2(M3) ||
φ3(M4) = || P3 P2(M4) ||
φ3(M5) = || P3 P2(M5) ||
φ3(M6) = || P3 P2(M6) ||

|| M2 P2(M2) ||-1=w2

α3

α0

|| M3 P2(M3) ||-1=w3

P3

T
T0

α0

P0

|| M4 P2(M4) ||-1=w4
|| M5 P2(M5) ||-1=w5
|| M6 P2(M6) ||-1=w6

And finally I do the following weighted average:

φ3(M2) w2 + φ3(M3) w3 + φ3(M4) w4 + φ3(M5) w5 + φ3(M6) w6 φ3
= => P3 (weighted)
30

w2 + w3 + w4 + w5 + w6

30

1 B ) Similarly with the formula below
I calculate the P1 (medium) with the previous P2 (medium)
t³[ α0(-xP3 -2xP0+3xP2)-(-yP3 -2yP0 +3yP2)]
+3t²[ α0(xP0 - xP2)-(yP0 - yP2)]
+ α0(xM-xP0 )-(yM-yP0) =0
2 A ) isdem 1 A with P1 of 1B etc....
1/4 d’ovale lissé

P0
P1
P2

=>

P3

X

Y

0
0
21.23
40

0
13.2
25
25

φ0 = 13.20
φ3 = 18.77
The result is improved but is not yet convincing.
It deserves another smoothing with a displacement
of one or more points M.
To check the accuracy of the smoothing I calculate the distances from the points M (n) to the Bézier curve.
|| M2 B3 ||=0.143
|| M3 B3 ||=0.177
|| M4 B3 ||=0.202
|| M5 B3 ||=0.035
|| M6 B3 ||=0.062

NB: see digital details on page 34
or the Excell file at the following address:
https://drive.google.com/open?id=1WnIhtbCCuQzKSwSH5ci52AoV99vIH6v5

A few tips.
The dichotomy is “simple” for this kind of calculation but at each iteration it is necessary to check certain points.
1) The φ must not exceed the point of tangency T if not the curve will have a
inflection point on its domain of definition [0 1] therefore block the v concerned.
2) The calculation of the parameters t can also be outside the domain [0 1] => use an estimated t
3) The convergence of the dicho. can cause des imbalance (one φ very small compared to the other)
blocking the φ concerned with a balanced value solves the problem.
4) When possible, accuracy can be improved by slightly varying an α.
5) Make sure that an inflection point is the end and or the beginning of the curve to be treated.

31

31

Smoothing of a complex polygon by 4 points.
échelle 1/2

Original drawing.

M1
M2
M3
M4
M5
M6
M7
M8
M9
M10
M11
M12
M13
M14
M15
M16
M17
M18
M19
M20
M21
M22
M23
M24
M25
M26
M27
M28
M29
M30
M31
M32
M33
M34
M35
M36
M37
M38
M39
M40
M41

Definition of smoothing points

Smooth curves with class C1 connections

Important note.
To achieve this type of smoothing, it is necessary to determine the coherent α3 each time.
α3
They must anticipate the following curve => α0(+n) = α3(n-1) +
i
Here is my method.
M3

X
1
9.8
24.4
40
54.5
65.2
73.8
86.9
105
125
146
167
183
198
208
213.2
211
204.5
193
171.8
146.3
125.3
118
110.5
104.3
97
91
87
85.2
84.5
82
75
66
60
58.5
58.4
54.8
45
34
25
17

Y
13
27
40
44.2
41.5
34.5
26.6
14
4.5
1.3
1.9
5.5
9.8
15.5
23.2
34.5
46
53.5
62
76.5
92
103.4
106.7
109.5
109.2
105
97.4
87.5
74
64.6
58
53.6
53.9
60
70.6
79
87
93
94.4
93
90

M5

M4

I calculate the circle passing through M3 M4 M5
and I easily determine α3.
M1

32

32

Smoothed curves with class C2 connection (if possible)
Example with the first 2 curves of class C1 smoothing
1st curve A

second curve B

X

Y

X

1
13
φ0 =11.53 P0
P1
5.829 23.475
P2 19.254 43.596
φ3 =20.75 P3
40
44 A’’in P3 = -2.66605

φ0 =13.43 P0

P1
P2
φ3 =18.48 P3

Y

40
44 B’’in P0 = 0.87972
53.423 44.591
60.302 39.225
74
27

Now the method is to vary φ0 and or φ3
with A’’in P3 and using the following formulas:
φ0 de B =

φ3 de B =

A’’(P3)( xP3 - xP0) + yP0 - yP3 + φ3 [ cos(α3)A’’(P3) - sin(α3) ]
2 cos(α0)A’’(P3) -2 sin(α0)
A’’(P3)( xP3 - xP0) + yP0 - yP3 + 2 φ0 [ sin(α0) - cos(α0)A’’(P3) ]
sin(α3) - cos(α3)A’’(P3)

Variation of φ0 with A’’(P0)= -2.66605 * 0,7=-1.86624 and for φ3 A’’(P0)= -2.66605
2nd curve B class C2

X
φ0 =8.69

P0
P1
P2

φ3 =20.34 P3

Y

40
44 B’’in P0 = -2.66605
48.682 44.453
58.945 40.494
74
27

=>

NB: always check if the φ are not outside range

33

33

= 40 yP3= 25

= 40 yP3= 25

= 40 yP3= 25

= 40 yP3= 25

= 40 yP3= 25

= 40 yP3= 25

= 40 yP3= 25

= 40 yP3= 25

= 40 yP3= 25

= 40 yP3= 25

= 40 yP3= 25

= 40 yP3= 25

T
M2
M3
M4
M5
M6
M7 = P3

34

34

=>

=>

X
0.000
1.502
6.317
12.400
19.349
28.128
40

P1-M2 α0=1.57 rad
P1-M3
1.57
P1-M4
1.57
P1-M5
1.57
P1-M6
1.57
2B

ϕ0= 16.11

ϕ0= 18.31

ϕ0= 16.86

ϕ0= 15.80

ϕ0= 15.29

t 2 = 0.141 ϕ0= 16.37

12.70
t 2 = 0.302
12.70
t 2 = 0.442
12.70
t 2 = 0.580
12.70
t 2 = 0.745
moyenne pondérée

ϕ3= 12.70

ϕ0= 17.35

ϕ0= 20.02

ϕ0= 18.37

ϕ0= 17.11

ϕ0= 16.41

ϕ0= 17.33

0.100
0.142
0.080
0.051
0.035

ϕ3= 9.75

ϕ3= 2.6

ϕ3= 8.7

ϕ3= 15.58

ϕ3= 22.3

0.029
0.034
0.050
0.101
0.372

poid

poid
0.016
0.017
0.023
0.034
0.069

xP0= 0 yP0= 0 xP1= 0 yP1= 16.108

xP0= 0 yP0= 0 xP1= 0 yP1= 18.312

xP0= 0 yP0= 0 xP1= 0 yP1= 16.863

xP0= 0 yP0= 0 xP1= 0 yP1= 15.797

xP0= 0 yP0= 0 xP1= 0 yP1= 15.292

xP0= 0 yP0= 0 xP1= 0 yP1= 16.365

xP0= 0 yP0= 0 xP1= 0 yP1= 17.354

xP0= 0 yP0= 0 xP1= 0 yP1= 20.017

xP0= 0 yP0= 0 xP1= 0 yP1= 18.373

xP0= 0 yP0= 0 xP1= 0 yP1= 17.113

xP0= 0 yP0= 0 xP1= 0 yP1= 16.407

xP0= 0 yP0= 0 xP1= 0 yP1= 17.332

ϕ3= 12.70

ϕ3= 14.2

ϕ3= 11.8

ϕ3= 9.18

ϕ3= 7.0

t 1 = 0.134 ϕ3= 9.7

17.35 t 1 = 0.277
17.35 t 1 = 0.420
17.35 t 1 = 0.572
17.35 t 1 = 0.757
moyenne pondérée

ϕ0= 17.35

25.00 t1(M3) = 0.200
25.00 t1(M4) = 0.312
25.00 t1(M5) = 0.441
25.00 t1(M6) = 0.619
moyenne pondérée

ϕ0= 25 t1(M2) = 0.095 ϕ3= 20.5

poid
0.091
0.132
0.081
0.051
0.035

xT= 0 T0= 25 P2-M2 α3=3.14 rad
yT= 25 T3= 40 P2-M3
3.14
P2-M4
3.14
P2-M5
3.14
P2-M6
3.14

P1-M2 α0=1.57 rad ϕ3= 9.75 t2(M2) = 0.134
P1-M3
1.57
9.75 t2(M3) = 0.288
P1-M4
1.57
9.75 t2(M4) = 0.423
P1-M5
1.57
9.75 t2(M5) = 0.556
P1-M6
1.57
9.75 t2(M6) = 0.721
1B
moyenne pondérée

2A

α0=1.57 rad
α3=3.1 rad

Y
0.000 α0=1.57 rad xT= 0 T0= 25 P2-M2 α3=3.14 rad
6.441 α3=3.1 rad yT= 25 T3= 40 P2-M3
3.14
12.215
P2-M4
3.14
16.868
P2-M5
3.14
20.640
P2-M6
3.14
23.613
1A
Début
25 α3=3.1 rad

yP0= 0

yP0= 0

yP0= 0

yP0= 0

yP0= 0

yP0= 0

yP0= 0

yP0= 0

yP0= 0

yP0= 0

yP0= 0

yP0= 0

yP1= 25

yP1= 25

yP1= 25

yP1= 25

yP1= 25

yP1= 25

xP2= 30.25

xP2= 42.62

xP2= 48.75

xP2= 55.58

xP2= 62.28

xP2= 60.48

xP1= 0 xP1= 17.35 xP2= 27.30

xP1= 0 xP1= 17.35 xP2= 25.83

xP1= 0 xP1= 17.35 xP2= 28.22

xP1= 0 xP1= 17.35 xP2= 30.82

xP1= 0 xP1= 17.35 xP2= 32.95

xP1= 0 xP1= 17.35 xP2= 30.31

xP1= 0

xP1= 0

xP1= 0

xP1= 0

xP1= 0

xP1= 0

xP2= 27.297 yP2= 25 xP3= 40 yP3= 25

xP2= 27.297 yP2= 25 xP3= 40 yP3= 25

xP2= 27.297 yP2= 25 xP3= 40 yP3= 25

xP2= 27.297 yP2= 25 xP3= 40 yP3= 25

xP2= 27.297 yP2= 25 xP3= 40 yP3= 25

xP2= 27.297 yP2= 25 xP3= 40 yP3= 25

xP2= 30.246 yP2= 25 xP3= 40 yP3= 25

xP2= 30.246 yP2= 25 xP3= 40 yP3= 25

xP2= 30.246 yP2= 25 xP3= 40 yP3= 25

xP2= 30.246 yP2= 25 xP3= 40 yP3= 25

xP2= 30.246 yP2= 25 xP3= 40 yP3= 25

xP2= 30.246 yP2= 25 xP3= 40 yP3= 25

xP0= 0

xP0= 0

xP0= 0

xP0= 0

xP0= 0

xP0= 0

xP0= 0

xP0= 0

xP0= 0

xP0= 0

xP0= 0

xP0= 0

yP2= 25 xP3= 40 yP3= 25

yP2= 25 xP3= 40 yP3= 25

yP2= 25 xP3= 40 yP3= 25

yP2= 25 xP3= 40 yP3= 25

yP2= 25 xP3= 40 yP3= 25

yP2= 25 xP3= 40 yP3= 25

yP2= 25 xP3= 40 yP3= 25

yP2= 25 xP3= 40 yP3= 25

yP2= 25 xP3= 40 yP3= 25

yP2= 25 xP3= 40 yP3= 25

yP2= 25 xP3= 40 yP3= 25

yP2= 25 xP3= 40 yP3= 25

=>

=>

P1-M2 α0=1.57 rad
P1-M3
1.57
P1-M4
1.57
P1-M5
1.57
P1-M6
1.57
2B

t2

12.70
t2
12.70
t2
12.70
t2
12.70
t2
moyenne p

ϕ3= 12.70

P1-M2 α0=1.57 rad ϕ3= 9.75 t2(M
P1-M3
1.57
9.75 t2(M
P1-M4
1.57
9.75 t2(M
P1-M5
1.57
9.75 t2(M
P1-M6
1.57
9.75 t2(M
1B
moyenne p

Rotate a curve using the "base change" formula.
It is useful to know this tool because it will simplify certain equations.
The purpose is to perform a rotation α on the curve having a point Ω as its center of rotation
and possibly a translation Δx , Δy of this curve.
Matrix Notation

P’

cos α -sin α . (xP - xΩ)
xP’
xΩ + ∆x
=
+ yΩ + ∆y
yP’
(yP - yΩ)
sin α cos α

or

P’

xP’ = cosα (xP - xΩ) - sinα (yP - yΩ) + xΩ + ∆x
yP’ = sinα (xP - xΩ) + cosα (yP - yΩ) + yΩ + ∆y

Example

P

X

Y

P0

45
72
15
75

15
60
45
15

0

0

P1
P2
P3

Ω 45
15

with

P2-P0

Δx = -30
Δy = 30

P

X

Y

P0’

15
-18,1
-23,5
25,3

45
85,8
27,1
73,2

P1’
P2’

=>

P3’
Origin’

19,81 -2,19

P3’

P1’

Origin

α = 70°

P0’

P

P1

P

P2’

P2

y
P3

P0
α = 70°

o

x

Reciprocal operation

35

P

cos (-α) -sin(-α) . (xP’ - xΩ - ∆x)
xP

=
+ yΩ
yP
(yP’ - yΩ - ∆y)
sin(-α) cos(-α)

or

P

xP = cos(-α)(xP’- xΩ -∆x) - sin(-α)(yP’ - yΩ -∆y) +xΩ

P

yP = sin(-α)(xP’- xΩ -∆x) + cos(-α)(yP’ - yΩ -∆y)+yΩ

cos (α)
xP
=
yP
-sin(α)

sin (α)
cos(α)

. (xP’ - xΩ - ∆x) + xΩ

(yP’ - yΩ - ∆y)

xP = cos(α)(xP’- xΩ -∆x) + sin(α)(yP’ - yΩ -∆y) +xΩ
yP = -sin(α)(xP’- xΩ -∆x) + cos(α)(yP’ - yΩ -∆y) +yΩ

35

How to solve a 3rd degree equation?

ax³ + bx² + c x + d = 0

The equation is in the form :

First we will simplify the terms of this equation

a

) divide all the coefficients by :

ax³ bx²
a
a

cx² d
a
a

x³ + Bx² + C x + D = 0

=>

0

(

) we change the variable by posing: x = z − B
3

(

=> 1 z − 3B

)

3

(

+ B z − 3B

)

2

(

(

²
C B
3

The discriminator

(

Δ

)

+ C z − 3B + D = 0

) By developing and simplifying =>
with : p =

)

et

of

q=

z³+ p z + q = 0

( 272B³

D BC
3

z³+ pz + q

)


= q² + 4
27

The sign and the value of the discriminator imply cases

ͳst case : if

Δ>0
x1 =

Example 1

=>

there is ͷ real root:

3 -q+ Δ

2

3 -q - Δ

2

B
3

2x³ + 3x² + x +1= 0

z³ − 0,25z + 0,5 = 0

Δ ≈ 0,25

x1 ≈ -1,398
36

36

ʹnd case : if

3q B

2p 3

x1 = 13
x2 = x3 = 1

z³−48z−128 = 0 Δ = 0
Δ<0

͵rd case : if

x1 =
x2 =
x3 =

=>

x2 = x3 = -

x³ - 15x² + 27x - 13 = 0

Example 2

Example 3

there are ͸ real roots:

3q B
p −3

x1 =

=>

Δ=0

2

2

2

-p
3

-p
3

-p
3

cos

cos

cos

(
(
(

there are ͹ real roots:

Arccos

(

3q
2p

(

-3
p

( +2¼

-3
p

( +4¼

3
Arccos

(

3q
2p

(

-3
p

− B
3

3
Arccos

(

3q
2p

3

(
(

−B
3
−B
3

2x³ - 3x² - 4x + 2 = 0

z³ − 2.75z − 0.25 = 0

Δ ≈ -3,02

x1 ≈ 2,02
x2 ≈-1,11
x3 ≈ 0,41
37

37


Aperçu du document bezier curves form V2.pdf - page 1/37

 
bezier curves form V2.pdf - page 2/37
bezier curves form V2.pdf - page 3/37
bezier curves form V2.pdf - page 4/37
bezier curves form V2.pdf - page 5/37
bezier curves form V2.pdf - page 6/37
 




Télécharger le fichier (PDF)




Sur le même sujet..





Ce fichier a été mis en ligne par un utilisateur du site. Identifiant unique du document: 01932739.
⚠️  Signaler un contenu illicite
Pour plus d'informations sur notre politique de lutte contre la diffusion illicite de contenus protégés par droit d'auteur, consultez notre page dédiée.