grafica2d

17
Bibliografie Falcidieno, B., Herman, I., Pienovi, C., Computer Graphics and Mathematics, New York, Springer, 1992 Dogaru, D., Elemente de grafică tridimensională, Bucureşti, Editura Ştiinţifică şi Enciclopedică, 1988 Smeureanu, I., Odăgescu, I., Luca, D., Dârdală, M., Furtună, F., Grafică interactiva pe calculatoare personale, Editura Militară, Bucureşti, 1995 Furtună, F., Grafică interactivă cu aplicaţii în Java şi Java3D, Editura ASE, Bucureşti, 2007 Rodica Baciu , Programarea aplicatiilor grafice 3D cu OpenGL , Editura Albastra, Cluj Napoca, 2005 ***, Euclidian Space – building a 3D world, http://www.euclideanspace.com/ OpenGL Reference Manual, http://www.glprogramming.com/blue/index.html

Upload: alexandra-ronaldinha

Post on 17-Dec-2015

218 views

Category:

Documents


0 download

DESCRIPTION

Curs Grafica2D

TRANSCRIPT

  • BibliografieFalcidieno, B., Herman, I., Pienovi, C., Computer Graphics and Mathematics, New York, Springer, 1992 Dogaru, D., Elemente de grafic tridimensional, Bucureti, Editura tiinific i Enciclopedic, 1988 Smeureanu, I., Odgescu, I., Luca, D., Drdal, M., Furtun, F., Grafic interactiva pe calculatoare personale, Editura Militar, Bucureti, 1995Furtun, F., Grafic interactiv cu aplicaii n Java i Java3D, Editura ASE, Bucureti, 2007Rodica Baciu , Programarea aplicatiilor grafice 3D cu OpenGL , Editura Albastra, Cluj Napoca, 2005***, Euclidian Space building a 3D world, http://www.euclideanspace.com/ OpenGL Reference Manual, http://www.glprogramming.com/blue/index.html

  • Transformari geometrice planeTransformari elementareTransformarea de vizualizareTransformari geometrice in spatiuSisteme de coordonate 3DTransformari 3DTransformari geometrice

  • Transformri geometrice planeCoordonate omogene - Un punct P(x y ) se reprezint n sistem de coordonate omogene prin punctul P(X Y w), unde X=xw, Y=yw, pentru orice valoare w0, numit factor general de scal Transformare plan Definesc o transformare plan ecuaiile xt= f(x, y), yt= g(x, y), care permit trecerea de la punctul M(x, y,1) la punctul Mt(xt, yt, 1) Matrice de transformare Matrice de dimensiune 33 prin care sunt modelate transformrile geometrice plane

  • Transformri elementareTranslaia: xt = x + a , yt = y + b Scalarea: xt = xa , yt = y b

  • Transformri elementareDeformarea (forfecarea): xt = x + ay , yt = y + bx Simetria: xt = - x , yt = - y

  • Transformri elementareRotaia n jurul originii n sens trigonometric cu un unghi

    M (x,y)

    Mt (xt, yt)

    O

    Y

    X

    r

  • Compunerea transformrilor 2DO transformare compus const ntr-o succesiune de transformri elementare executate ntr-o anumit ordine.Matricea transformrii compuse este produsul matricelor transformrilor elementare componenteTransformarea invers Transformare care are ca efect aducerea unui corp n starea iniial

  • Transformarea de vizualizare

  • Transformarea de vizualizareCoordonate utilizator (coordonatele reale) - spaiul utilizator - fereastr

  • Transformarea de vizualizarecoordonate ecran spaiul ecran vizor (viewport)

    Spaiul ecran

    Vizorul

    (vl,vt)

    (vr,vb)

  • Transformarea de vizualizare

    Fereastra

    Vizorul

    (x, y)

    (vl,vt)

    (vr,vb)

    (xe, ye)

    (wl,wt)

    (wr,wb)

  • Aplicatia 1. S se realizeze o hart a Romniei pornind de la cele dou coordonate geografice (latitudine, longitudine) ale oraelor reedin de jude.

    Ora

    Latitudine

    Longitudine

    Ora

    Latitudine

    Longitudine

    Braov

    45.6333

    25.5833

    Piteti

    44.85

    24.8667

    Alba Iulia

    46.0667

    23.5833

    Trgu Mure

    46.55

    24.5667

    Arad

    46.3333

    21.75

    Giurgiu

    43.8833

    25.9667

    Braila

    45.2667

    27.9833

    Deva

    45.9

    22.9

    Galai

    45.45

    28.05

    Sibiu

    45.8

    24.15

    Cluj Napoca

    46.7667

    23.6

    Satu Mare

    47.8

    22.8833

    Constana

    44.1833

    28.65

    Vaslui

    46.6333

    27.7333

    Craiova

    44.3167

    23.8

    Focani

    45.7

    27.1833

    Iai

    47.1667

    27.6

    Tulcea

    45.1667

    28.8

    Baia Mare

    47.6667

    23.5833

    Sfntu Gheorghe

    45.8667

    25.7833

    Ploieti

    44.95

    26.0167

    Bistrita Nasaud

    47.1333

    24.4833

    Oradea

    47.0667

    21.9333

    Botoani

    47.75

    26.6667

    Suceava

    47.6337

    26.25

    Reia

    45.3008

    21.8892

    Timioara

    45.7494

    21.2272

    Drobeta T.S.

    44.6319

    22.6561

    Bucureti

    44.4333

    26.1

    Buzu

    45.15

    26.8333

    Bacu

    46.5667

    26.9

    Clrai

    44.2

    27.3333

    Trgovite

    44.9333

    25.45

    Trgu Jiu

    45.05

    23.2833

    Piatra Neam

    46.9167

    26.3333

    Slatina

    44.4333

    24.3667

    Zalu

    47.2

    23.05

    Alexandria

    43.9833

    25.3333

    Ramnicu Valcea

    45.1

    24.3667

    Slobozia

    44.5667

    27.3667

    Miercurea Ciuc

    46.21

    25.48

  • Aplicatia 2. S se efectueze rotaia unui corp n jurul unui punct arbitrar M, cu un unghi n sens trigonometricEtape:translaia centrului de rotaie n originea axelorrotaia n jurul originii n sens trigonometric cu unghiul translaia rezultatului la centrul de rotaie iniial.

    M (a,b)

    Pt (xt, yt)

    O

    Y

    X

    P(x, y)

  • .NET Framework Class Library - Clasa Matrixpublic Matrix(); // creaza o matrice identitatepublic Matrix( float m11, float m12, float m21, float m22, float dx, float dy ); // creaza o matrice cu parametrii specificatipublic Matrix( Rectangle rect, Point[] plgpts ); //creaza o matrice de transformare de la zona specificata prin rect la cea specificata prin vectorul de puncte(stanga-sus,dreapta-sus,stanga-jos)public Matrix( RectangleF rect, PointF[] plgpts ); // Idem

  • .NET Framework Class Library - Clasa Matrixpublic void Multiply( Matrix matrix ); // inmultire cu matricea specificatapublic void Reset(); // resetare pe matricea identitatepublic void Invert(); // determina matricea inversapublic void Rotate( float angle ); // rotatie in jurul originii in sens orar cu unghiul specificatpublic void RotateAt( float angle, PointF point ) ; // rot. in jurul punctului specificat in sens orar cu unghi specificat

  • .NET Framework Class Library - Clasa Matrixpublic void Translate( float offsetX, float offsetY );// translatiavoid Scale( float scaleX, float scaleY ); // scalare cu parametrii specificatipublic void Shear( float shearX, float shearY ); // deformare (forfecare) cu parametrii specificati

  • Clasa Graphicspublic void MultiplyTransform( Matrix matrix ); // compune matricea curenta cu matricea matrixpublic void ResetTransform(); // restabileste matricea unitate ca matrice de lucrupublic void RotateTransform( float angle ); // aplica o matrice de rotatie sub unghi anglepublic void ScaleTransform( float sx, float sy ); //aplica o matrice de scalare de parametrii specificati