Présentation des différentes formes plus ou moins complexes qu’AWT nous permet de gérer.
Présentation des formes
- Shape
- Rectangle
- Ellipse
- Path
- Area
Héritent de Shape : Polygon, GeneralPath, Line2D, QuadCurve2D, CubicCurve2D, Area, RectangularShape.
Héritent de RectangularShape : Arc2D, Ellipse2D, Rectangle2D {Rectangle}, RoundRectangle2D.
Créer par les coordonnées représentant la diagonale :rect.setFrameFromDiagonal
Fournir x, y, longueur, hauteur, angleDeDebut, angle de Fin, et la closure.
La closure : Arc2D.PIE (Aucune fermeture), Arc2D.OPEN (2 segments reliant début courbe et Centre), Arc2D.CHORD (un segment reliant début et fin de courbe).
Gestion des angles déformés :Math.toDegrees(Math.atan2(Math.sin(angle)*width), Math.toDegrees(Math.cos(angle)*height))
Suite de poins. moveTo(x,y), lineTo(x,y), curveTo(x1,y1,x2,y2, endX, endY), closePath, append(shape).
add : union de deux shapes. substract : A et non B, intersect, exclusiveOr.
Les outils
- draw
- setStroke
dessine le contour.
BasicStroke(epaisseur, typeBrosse, typeJointure, float[ motif de ligne (ligne alternée))
Le remplissage
GradientPaint(point1, couleur1, point2, couleur2)TexturePaint(bufferedImage, Rectangle2D anchor)
Fournit un dégradé entre les points 1 et 2, le reste étant de couleur unie. Le dégradé peut être répété en passant le paramètre cyclic à true.
buffer = new BufferedImage(width, height, TYPE_INT_ARGB); Graphics2D g2 = buffer.createGraphics;
Image img = Toolkit.getDefaultToolkit().getImage(source);
MediaTracker tracker = new MEdiaTracker(this);
tracker.addImage(image, 0);
try {
tracker.waitForID(0);
} catch (InterruptedException ie) {}
buffer.createGraphics().drawImage(image, 0, 0, null);