Extras din referat
Desenarea Folosind Contextul Grafic
Dat de Clasa Graphics2D
Abstract. Prezenta lucrare ofera informatii generale realizarii desenelor în lim-bajul Java folosind contextul dat de clasa Graphics2D. Lucrarea însa se bazeaza pe una dintre facilitatile pe care le ofera aceasta clasa si anume conceptul ab-stract de forma geometrica: crearea formelor si umplerea lor.
1 Clasa Graphics2D
Clasa java.awt.Graphics2D extinde clasa java.awt.Graphics, mostenind toate me-todele acesteia. Folosirea drept context grafic a unei instante a clasei Graphics2D permite o flexibilitate mult mai mare în reprezentarea desenelor, datorita facilitatilor suplimentare pe care le ofera aceasta clasa, cum sunt: trasarea liniilor de diferite grosimi, folosirea gradientelor de culori (trecere graduala dintr-o culoare în alta) si a texturilor, translatarea, rotirea si transformarea de scara a figurilor, efectuarea de transformari afine etc.
1.1 Desenarea folosind contextul dat de clasa Graphics2D
Metoda paint(Graphics g), care este redefinita de programator pentru fiecare com-ponenta pe suprafata careia se deseneaza, are ca argument o instanta a clasei Graphics. În realitate, la versiunile actuale ale masinilor virtuale Java, la invocarea metodei paint i se transfera acesteia o instanta a contextului grafic Graphics2D. Pentru com-patibilitate cu versiunile anterioare, semnaturile metodelor paint si update au ramas aceleasi, deci ele au ca argument formal o instanta a clasei Graphics. Daca programa-torul doreste sa foloseasca metodele clasei Graphics2D, trebuie sa faca o conversie de la superclasa Graphics la clasa Graphics2D. În consecinta, redefinirea metodei paint se va face sub forma:
public void paint(Graphics g) {
Graphics2D g2d = (Graphics2D)g;
/* Instructiuni în care se foloseste pentru
desenare*/}
2 Realizarea lucrarii de laborator
Appletul din aceasta lucrare a fost realizat folosind contextul dat de clasa Graph-ics2D, utilizând una dintre noutatile introduse de aceasta clasa si anume clasele de forme.
21 Crearea formelor
În clasa Graphics existau metode de trasare pentru un numar restâns de figuri ge-ometrice (dreapta, dreptunghi, oval, linie poligonala, poligon) Orice alta forma putea fi creata numai folosind liniile poligonale si poligoanele. În clasa Graphics2D s-a introdus conceptul abstract de forma geometrica reprezentata prin interfata Shape. În pachetele java.awt si java.awt.geom exista, de asemenea, un set de clase de forme predefinite care implementeaza interfata Shape. În plus, programatorul poate crea propriile lui clase de forme, care implementeaza interfata Shape. Dintre clasele de forme predefinite care implementeaza interfata Shape, mentionam aici:
- clasele abstracte: Line2D, QuadCurve2D, CubicCurve2D, RectangularShape, Arc2D, Ellipse2D, Rectangle2D, RoundRectangle2D;
- clasele statice: Line2D.Double, Line2D.Float, QuadCurve2D.Float, Quad-Curve2D.Double, CubicCurve2D.Float, CubicCurve2D.Double, Arc2D.Double, Arc2D.Float, Ellipse2D.Double, Ellipse2D.Float, Rectan-gle2D.Double, Rectangle2D.Float, RoundRectangle2D.Double, RoundRec-tangle2D.Float;
- clasele Rectangle, Polygon, GeneralPath, Area.
Exitsta,de asemenea, doua familii de clase de forme care implementeaza interfata Shape:
- Point2D, Point2D.Float, Point2D.Double, Point;
- Dimension2D, Dimension2D.Float, Dimension2D. Double.
Cu aceste clase se pot construi orice alte forme 2D, iar desenarea formelor se face folosind urmatoarele metode ale clasei Graphics2D:
- public abstract void draw (Shape s) deseneaza conturul formei s
- public abstract void fill (Shape s) umple interiorul formei s
2.2 Interfata Shape
Interfata java.awt.Shape este reprezentarea abstracta a unei forme geometrice oare-care. Pentru parcurgerea conturului acestei forme, în interfata Shape este folosita interfata PathIterator care permite, de asemenea, sa se determine daca un punct oare-care este interior sau exterior formei.
Preview document
Conținut arhivă zip
- Clasa Graphics 2D.doc