Editarea literelor mari de tip rond în C++

Proiect
7/10 (1 vot)
Conține 1 fișier: doc
Pagini : 13 în total
Cuvinte : 1222
Mărime: 18.77KB (arhivat)
Publicat de: Leonard Stoica
Puncte necesare: 6

Extras din proiect

Programul litere.cpp realizeaza generarea literelor mari de tip rond prin citirea dintr-un fisier a unui numar de puncte ce reprezinta o linie sau mai multe linii poligonale cu punctele aflate pe conturul literei.

La rulare se va alege culoarea de catre utilizator dupa care vor aparea literele mari de tip rond, una dupa alta, oprindu-se cateva secunde.

Program foloseste curbele B-spline ce sunt descrise prin functii polinomiale (de gr. II si III) definite pe portiuni.

Curbele B-spline de gradul II (parabolice)

Daca se considera o linie poligonala formata din 3 puncte Pi(xi, yi), i=1,2, 3, atunci aceasta se aproximeaza cu o curba B-spline ce are o extremitate in mijlocul segmentului P1 P2, iar cealalta extremitate se afla in mijlocul segmentului P2 P3 , curba fiind un arc de parabola (curba de gradul II) definit de drumul (aplicatia) :

 : [0,1]  R2, unde  (t) = (x(t), y(t)),

x(t) = a x1 + b x2 + c x3

y(t) = a y1 + b y2 + c y3 , pentru t  , notatiile fiind

a = (1 – 2t + t2 )/2 , b = (1 + 2t -t2 ) /2, c = t2 /2, a+b+c = 1

P2

P1 P3

Evident, pentru t=0 si t=1 avem, respectiv

 (0) = (x(0), y(0)), x(0) = (x1 + x2)/2 , y(0) = (y1+y2)/2 si

 (1) = (x(1), y(1)), x(1) = (x2 + x3)/2 , y(1) = (y2+y3)/2

Definitie.

Linia poligonala P = P1 P2 ... Pn , unde Pi(xi, yi), i=1,2, … ,n , se aproximeaza cu o curba B-spline n-2 , avand urmatoarele proprietati ;

a) are extremitatile in mijloacele segmentolor P1 P2 si Pn-1 Pn ;

b) segmentele Pi Pi+1 , i=1,2, …, n-1 sunt tangente la curba in mijloacele segmentelor Pi Pi+1.

c) curba este definita pe portiuni de i : [0,1]  R2, unde i (t) = (x(t), y(t)),

i=1,2, … ,n-2 si

x(t) = a xi + b xi+1 + c xi+2

y(t) = a yi + b yi+1 + c yi+2 , pentru t  , notatiile fiind

a = (1 – 2t + t2 )/2 , b = (1 + 2t -t2 ) /2, c = t2 /2, a+b+c = 1

In figura urmatoare se prezinta aceste proprietati.

Preview document

Editarea literelor mari de tip rond în C++ - Pagina 1
Editarea literelor mari de tip rond în C++ - Pagina 2
Editarea literelor mari de tip rond în C++ - Pagina 3
Editarea literelor mari de tip rond în C++ - Pagina 4
Editarea literelor mari de tip rond în C++ - Pagina 5
Editarea literelor mari de tip rond în C++ - Pagina 6
Editarea literelor mari de tip rond în C++ - Pagina 7
Editarea literelor mari de tip rond în C++ - Pagina 8
Editarea literelor mari de tip rond în C++ - Pagina 9
Editarea literelor mari de tip rond în C++ - Pagina 10
Editarea literelor mari de tip rond în C++ - Pagina 11
Editarea literelor mari de tip rond în C++ - Pagina 12
Editarea literelor mari de tip rond în C++ - Pagina 13

Conținut arhivă zip

  • Editarea Literelor Mari de Tip Rond in C++.doc

Ai nevoie de altceva?