Java 2D Tutorial III - Graphisme 2D


Ce est la troisième partie d'un troisième parti Tutorial

Dans le premier tutoriel, je, je ai couvert la création d'un package, la création d'une classe abstraite, créant une classe qui étend la classe abstraite. Dans Tutorial II, je ai couvert JFrame, JPanel, système, des couleurs personnalisées, peintures gradient, et comment tester coordonne le code.

Dans ce tutoriel, je vais couvrir graphismes en 2D - vous devez le code affiché sur mon autre tutoriel, parce que tous les trois tutoriels menant au Mystère de dessin qui sera enfin révélé.




À la fin de cet exercice, l'ensemble du code pour le mystère de classe sera envoyé dans les balises de code et sous la forme d'un texte pour ceux qui préfèrent regarder le code de cette façon.


Graphisme 2D


Voici quelques-unes des méthodes de base utilisées pour créer des formulaires en Java 2D. D'autres méthodes sont couverts au long du didacticiel.

Ligne: La ligne est utilisée pour tracer une ligne à partir du point A au point B. Il prend quatre arguments. La position de départ x, y de la position initiale, la position finale de la position finale x et y.

  • Ligne2d nameItWhatYouWant = Line2D.Float nouveau (x, y, x, y);
  • Exemple: Ligne2d ligne = new Line2D.Float (x + 20, + 30 y, x + 100, y + 30);

Ellipse: L'Ellipse est utilisé pour faire des cercles et des ovales. Il prend quatre arguments. La position de départ x, y de la position initiale, la largeur de l'ellipse et la hauteur de l'ellipse.

  • Ellipse2D nameItWhatYouWant = new Ellipse2D.Float (x, y, largeur, hauteur);

Pour dessiner un cercle Assurez-vous que la largeur et la hauteur sont égales.

  • Ellipse2D cercle = new Ellipse2D.Float (100 + x, y + 100, 50, 50);

Pour dessiner un ovale Assurez-vous que la largeur et la hauteur sont différentes.

  • Ellipse2D ovale = new Ellipse2D.Float (100 + x, y + 100, 80, 50);

Rectangle: Le rectangle est utilisé pour faire des rectangles et des carrés. Il prend quatre arguments. Le début de la position x, le début de la position y, la largeur du rectangle, et la hauteur du rectangle.

  • Rectangle2D nameItWhatYouWant = new Rectangle2D.Float (x, y, largeur, hauteur);

Pour dessiner un carré Assurez-vous que la largeur et la hauteur sont égales.

  • Piazza Rectangle2D = new Rectangle2D.Float (x + 200, 100 y, 80, 80);

Pour dessiner un rectangle Assurez-vous que la largeur et la hauteur sont différentes.

  • Rectangle2D rectangle = Rectangle2D.Float nouveau (x + 200, y + 100, 50, 100);


Mystère classe

Ouvrir Mystère de classe. Dans Eclipse, la carte devrait lire Mystery.java. La classe devrait être similaire au code posté ci-dessous. Si non, faire des corrections afin que vous serez en mesure de tester le code que nous avançons.

Mystère classe

com.java2D.mysterydrawing emballage; java.awt.Graphics2D importation; Mystère public class étend modèle { Override drawShape public void (Graphics2D g) { // TODO méthode d'auto-généré stub } / ** * args Param * / Main (string [] args) {public static void Mystère Mystère = new (); Frame c = new Cadre (a); v.setVisible (true); } }

Graphics2D - Si vous utilisez Absolute Coords?

Lors de la création des graphiques dans les graphiques 2D vous pouvez utiliser des coordonnées absolues. Par exemple, vous pouvez dessiner un cercle et le remplir.

Pour les exemples suivants, nous voulons que le cercle pour être situé en haut à droite de l'écran.

// Définit la couleur de la Ellipse au blanc

g.setColor (Color.White);

// Cela crée arguments ellipse (x, y, largeur, hauteur)

Ellipse2D cercle = new Ellipse2D.Float (700, 50, 100, 100);

// Ce remplit le cercle avec la couleur blanche

g.fill (cercle);

Testez le code, cliquez sur Exécuter> Exécuter en tant que> Java Application 1.

* Notez la position du cercle.


Toutefois, si vous décidez de changer la taille de la JFrame?

Sur la photo à droite, je ai changé mon JFrame comme amorce sur Dégradé (1400, 700).

* Notez que le cercle ne est pas situé en haut à droite.

Pour cet exemple, il ne serait pas faux de changer le code, mais imaginez que vous créez beaucoup de graphiques et a ensuite décidé qu'ils veulent la plus grande taille d'écran ... serait littéralement ligne par ligne de code pour modifier le chemin de chaque image .

Au lieu de cela, définissez la variable égale à la JFrame de taille:

drawShape public void (Graphics2D g) {

// Définit la largeur et la hauteur équivalente à la JFrame.

int width = 1400;

int height = 700;

Notez que dans notre écran d'origine de format, la largeur est de 900, et le cercle x la valeur était de 700, (largeur - 200). Note également le code ci-dessous, je ai changé y la valeur de y + 50. Maintenant changer le code.

// Définit la couleur de la Ellipse au blanc

g.setColor (Color.White);

// Cela crée arguments ellipse (x, y, largeur, hauteur)

Ellipse2D cercle = Ellipse2D.Float nouvelle (largeur - 200, y + 50, 100, 100);

// Ce remplit le cercle avec la couleur blanche

g.fill (cercle);

}


Avec les changements dans le code, maintenant le cercle est placé à nouveau en haut à droite.

Maintenant je ai changé le JFrame et la peinture de gradient utilisé comme arrière plan, de retour à la taille originale de (900, 700). Maintenant tout ce que je ai à faire est de changer les int width = 900

Nouveau code:

Override

drawShape public void (Graphics2D g) {

// Définit la largeur et la hauteur équivalente à la JFrame.

int width = 900;

int height = 700;


// Définit la couleur de la Ellipse au blanc

g.setColor (Color.White);

// Cela crée arguments ellipse (x, y, largeur, hauteur)

Ellipse2D cercle = Ellipse2D.Float nouvelle (largeur - 200, y + 50, 100, 100);

// Ce remplit le cercle avec la couleur blanche

g.fill (cercle);


}

While

Suivant l'ajout de plusieurs variables qui seront utilisées pour la boucle while:

drawShape public void (Graphics2D g) {

// Définit la largeur et la hauteur équivalente à la JFrame.

int width = 900;

int height = 700;


int nombre = 0;

x1 int = 20;

int x2 = 0;

int y1 = 590;

int y2 = 620;

int w = 30;

int w2 = 40;

int h = 110;

int h2 = 20;



En utilisant une boucle while au lieu de tirer les mêmes éléments 17 fois

Entrez le code après g.fill (cercle);

tout (nombre <17) {

// Définit la couleur noire

g.setColor (Color.black);

Cela crée arguments Rectangle (x1, y1, w, h) par de nouvelles variables ci-dessus

Rectangle2D rectangle1 = new Rectangle2D.Float (x1, y1, w, h);

// Ce remplit le rectangle noir

g.fill (rectangle1);

Cela crée arguments Rectangle (x2, y2, w2, h2);

Rectangle2D rectangle2 = new Rectangle2D.Float (x2, y2, w2, h2);

// Remplir le rectangle noir

g.fill (rectangle2);

GeneralPath est un excellent moyen de faire des formes qui ne sont pas standard et permet la forme pour être facilement rempli d'une couleur de votre choix. E 'fait en connectant une série de points. Si vous vous étiez la ligne de commande, vous devez remplir la couleur presque pixel par pixel.

// Cela va créer un triangle avec GeneralPath

GeneralPath triangle1 GeneralPath = new ();

Le moveTo - Pensez à comment vous prenez un crayon et en déplaçant le crayon à un point sur le graphique différent.

Le lineTo - trace une ligne du point moveTo le point que vous désignez.

Notez que nous utilisons variable x1

triangle1.moveTo (x1, y + 590);

triangle1.lineTo (x1 + 15, y + 560);

triangle1.lineTo (x1 + 30, y + 590);

triangle1.lineTo (x1, y + 590);

// Ce remplit le triangle noir

g.fill (triangle1);

// Augmenter le nombre de conception

Numéro + = 1;

// X1 x2 incrément et coordonne pour lequel il existe un espace entre le dessin

x1 = + 50;

x2 = + 60;

}


Maintenant, testez le code:

Exécuter> Exécuter en tant que> Java Application 1


L'image ci-dessous est ce dessin le Mystère ressemble à ce point.

code Jusqu'à ce point

com.java2D.mysterydrawing emballage; java.awt.Color importation; java.awt.Graphics2D importation; java.awt.geom.Ellipse2D importation; java.awt.geom.GeneralPath importation; java.awt.geom.Line2D importation; java.awt.geom.Rectangle2D importation; Mystère public class étend modèle { Override drawShape public void (Graphics2D g) { // Définit la largeur et la hauteur équivalente à la JFrame. int width = 900; int height = 700; int nombre = 0; x1 int = 20; int x2 = 0; int y1 = 590; int y2 = 620; int w = 30; int w2 = 40; int h = 110; int h2 = 20; // Définit la couleur de la Ellipse au blanc g.setColor (Color.White); // Cela crée arguments ellipse (x, y, largeur, hauteur) Ellipse2D cercle = Ellipse2D.Float nouvelle (largeur - 200, y + 50, 100, 100); // Ce remplit le cercle avec la couleur blanche g.fill (cercle); // Utilisez une boucle while au lieu de dessiner le même article 17 fois tout (nombre <17) { // Définit la couleur noire g.setColor (Color.black); // Cela crée arguments Rectangle (x1, y1, w, h) Rectangle2D rectangle1 = new Rectangle2D.Float (x1, y1, w, h); // Ce remplit le rectangle noir g.fill (rectangle1); // Ceci crée arguments Rectangle (x2, y2, w2, h2) Rectangle2D rectangle2 = new Rectangle2D.Float (x2, y2, w2, h2); g.fill (rectangle2); // Cela va créer un triangle avec GeneralPath utilisant x1 GeneralPath triangle1 GeneralPath = new (); triangle1.moveTo (x1, y + 590); triangle1.lineTo (x1 + 15, y + 560); triangle1.lineTo (x1 + 30, y + 590); triangle1.lineTo (x1, y + 590); g.fill (triangle1); // Augmenter le nombre de conception Numéro + = 1; // X1 x2 incrément et coordonne pour lequel il existe un espace entre le dessin x1 = + 50; x2 = + 60; } } / ** * args Param * / Main (string [] args) {public static void Mystère Mystère = new (); Frame c = new Cadre (a); v.setVisible (true); }

Tapez le code suivant ci-dessous:

x1 = + 50;

x2 = + 60;

}

Créer une nouvelle voie générale.

Remarquez dans le code ci-dessous le changement de couleur et la méthode de tirage.

Avant de remplir une GeneralPath de noir, en changeant la couleur du gris foncé, puis en utilisant la méthode de tirage.

  • La méthode Fill remplit le formulaire avec la couleur
  • La méthode de dessin dessine le contour de la forme.

Il est important de la méthode utilisée en premier. Dans ce cas, je suis GeneralPath remplir une de noir et changer la couleur au gris foncé puis en utilisant la méthode de tirage au sort pour délimiter la place. Si je avais utilisé la méthode de dessin, puis la méthode de remplissage, contour gris foncé ne serait pas vu.

GeneralPath une GeneralPath = new ();

one.moveTo (x + 300, y + 400);

one.lineTo (x + 280, y + 300);

one.lineTo (350 + x, y + 280);

one.lineTo (350 + x, y + 400);

one.lineTo (x + 300, y + 400);

g.fill (un);

g.setPaint (Color.DARK_GRAY);

g.draw (un);

En regardant le code ci-dessous:

Dans ce cas, je vais remplir la place de jaune et puis avec la méthode de tirage au sort pour délimiter la place. Si je avais utilisé la méthode de dessin, puis la méthode de remplissage, le contour rouge ne serait pas vu.

Rectangle2D rectangle3 = new Rectangle2D.Float (x + 595, + 315 y, 15, 15);

g.setPaint (Color.yellow);

g.fill (rectangle3);

g.setPaint (Color.RED);

g.draw (rectangle3);


Rectangle2D rectangle4 = new Rectangle2D.Float (x + 350, y 240, 150, 170);

g.setPaint (Color.BLACK);

g.fill (rectangle4);

g.setPaint (Color.DARK_GRAY);


GeneralPath deux GeneralPath = new ();

two.moveTo (500 + x, y + 280);

two.lineTo (x + 570, y + 300);

two.lineTo (x + 550, y + 400);

two.lineTo (500 + x, y + 400);

g.setPaint (Color.BLACK);

g.fill (deux);

g.setPaint (Color.DARK_GRAY);


g.draw (deux);

Notez ici que les grandes lignes de rectangle4 est tracé. Se il a été établi avant ce point les autres formes devaient couvrir le contour.

g.draw (rectangle4);


Rectangle2D rectangle6 = new Rectangle2D.Float (x + 540, + 315 y, 15, 15);

g.setPaint (Color.yellow);

g.fill (rectangle6);

g.setPaint (Color.RED);

g.draw (rectangle6);


Maintenant, testez le code:

Exécuter> Exécuter en tant que> Java Application 1


L'image ci-dessous représente ce que le Mystère dessin ressemble à ce point.



Code à ce point

com.java2D.mysterydrawing emballage; java.awt.Color importation; java.awt.Graphics2D importation; java.awt.geom.Ellipse2D importation; java.awt.geom.GeneralPath importation; java.awt.geom.Line2D importation; java.awt.geom.Rectangle2D importation; Mystère public class étend modèle { Override drawShape public void (Graphics2D g) { // Définit la largeur et la hauteur équivalente à la JFrame. int width = 900; int height = 700; int nombre = 0; x1 int = 20; int x2 = 0; int y1 = 590; int y2 = 620; int w = 30; int w2 = 40; int h = 110; int h2 = 20; // Définit la couleur de la Ellipse au blanc g.setColor (Color.White); // Cela crée arguments ellipse (x, y, largeur, hauteur) Ellipse2D cercle = Ellipse2D.Float nouvelle (largeur - 200, y + 50, 100, 100); // Ce remplit le cercle avec la couleur blanche g.fill (cercle); // Utilisez une boucle while au lieu de dessiner le même article 17 fois tout (nombre <17) { // Définit la couleur noire g.setColor (Color.black); // Cela crée arguments Rectangle (x1, y1, w, h) Rectangle2D rectangle1 = new Rectangle2D.Float (x1, y1, w, h); // Ce remplit le rectangle noir g.fill (rectangle1); // Ceci crée arguments Rectangle (x2, y2, w2, h2) Rectangle2D rectangle2 = new Rectangle2D.Float (x2, y2, w2, h2); g.fill (rectangle2); // Cela va créer un triangle avec GeneralPath utilisant x1 GeneralPath triangle1 GeneralPath = new (); triangle1.moveTo (x1, y + 590); triangle1.lineTo (x1 + 15, y + 560); triangle1.lineTo (x1 + 30, y + 590); triangle1.lineTo (x1, y + 590); g.fill (triangle1); // Augmenter le nombre de conception Numéro + = 1; // X1 x2 incrément et coordonne pour lequel il existe un espace entre le dessin x1 = + 50; x2 = + 60; } GeneralPath une GeneralPath = new (); one.moveTo (x + 300, y + 400); one.lineTo (x + 280, y + 300); one.lineTo (350 + x, y + 280); one.lineTo (350 + x, y + 400); one.lineTo (x + 300, y + 400); g.fill (un); g.setPaint (Color.DARK_GRAY); g.draw (un); Rectangle2D rectangle3 = new Rectangle2D.Float (x + 295, + 315 y, 15, 15); g.setPaint (Color.yellow); g.fill (rectangle3); g.setPaint (Color.RED); g.draw (rectangle3); Rectangle2D rectangle4 = new Rectangle2D.Float (x + 350, y 240, 150, 170); g.setPaint (Color.BLACK); g.fill (rectangle4); g.setPaint (Color.DARK_GRAY); GeneralPath deux GeneralPath = new (); two.moveTo (500 + x, y + 280); two.lineTo (x + 570, y + 300); two.lineTo (x + 550, y + 400); two.lineTo (500 + x, y + 400); g.setPaint (Color.BLACK); g.fill (deux); g.setPaint (Color.DARK_GRAY); g.draw (deux); g.draw (rectangle4); Rectangle2D rectangle6 = new Rectangle2D.Float (x + 540, + 315 y, 15, 15); g.setPaint (Color.yellow); g.fill (rectangle6); g.setPaint (Color.RED); g.draw (rectangle6); } / ** * args Param * / Main (string [] args) {public static void Mystère Mystère = new (); Frame c = new Cadre (a); v.setVisible (true); }

Tapez le code suivant après g.draw (rectangle6);

Rectangle2D rectangle7 = new Rectangle2D.Float (x + 365, + 280 y, 20, 20);

g.setPaint (Color.RED);

g.draw (rectangle7);


Rectangle2D rectangle8 = new Rectangle2D.Float (x + 400, + 280 y, 20, 20);

g.setPaint (Color.yellow);

g.fill (rectangle8);

g.setPaint (Color.RED);

g.draw (rectangle8);


Rectangle2D rectangle9 = new Rectangle2D.Float (x + 430, + 280 y, 20, 20);

g.setPaint (Color.yellow);

g.fill (rectangle9);

g.setPaint (Color.RED);

g.draw (rectangle9);


Rectangle2D rectangle10 = new Rectangle2D.Float (x + 460, + 280 y, 20, 20);

g.setPaint (Color.RED);

g.draw (rectangle10);

GeneralPath trois GeneralPath = new ();

three.moveTo (x + 280, y + 270);

three.lineTo (x + 425, y + 170);

three.lineTo (x + 560, y + 270);

three.lineTo (x + 350, y + 270);

g.setPaint (Color.BLACK);

g.fill (trois);

g.setPaint (Color.DARK_GRAY);

g.draw (trois);



GeneralPath quatre GeneralPath = new ();

four.moveTo (x + 400, y + 410);

four.lineTo (x + 400, y + 360);

four.lineTo (x + 430, y + 310);

four.lineTo (x + 460, y + 360);

four.lineTo (x + 460, 410 + y);

g.setPaint (Color.RED);

g.draw (quatre);



GeneralPath cinq GeneralPath = new ();

five.moveTo (x + 410, 410 + y);

five.lineTo (x + 410, y + 370);

five.lineTo (x + 430, 325 + y);

five.lineTo (x + 450, y + 370);

five.lineTo (x + 450, y + 410);

g.draw (cinq);


Ellipse2D circle2 = new Ellipse2D.Float (x + 420, + 350 y, 20, 20);

g.setColor (Color.DARK_GRAY);

g.fill (circle2);

g.setPaint (Color.BLACK);

g.draw (circle2);


}



Ce est la principale:

/ **

* args Param

* /

Main (string [] args) {public static void

Ce est la classe et de l'appeler un mystère.

Mystère Mystère = new ();

Ceci appelle le JFrame, appelant v, et en passant un argument qui permet la conception à peindre sur le JPanel.

Frame c = new Cadre (a);

Ce est le réglage de la DFrame de visibilité véritable de sorte que le cadre est visible dans la fenêtre.

v.setVisible (true);

}

}

Maintenant, testez le code:

Exécuter> Exécuter en tant que> Java Application 1


Le mystère de la conception est révélé ci-dessous. Se il ya des problèmes, vérifier les fautes de frappe et réapparaît ici collé le code et le code.

Le mystère de l'ensemble de la classe

com.java2D.mysterydrawing emballage; java.awt.Color importation; java.awt.Graphics2D importation; java.awt.geom.Ellipse2D importation; java.awt.geom.GeneralPath importation; java.awt.geom.Line2D importation; java.awt.geom.Rectangle2D importation; Mystère public class étend modèle { Override drawShape public void (Graphics2D g) { // Définit la largeur et la hauteur équivalente à la JFrame. int width = 900; int height = 700; int nombre = 0; x1 int = 20; int x2 = 0; int y1 = 590; int y2 = 620; int w = 30; int w2 = 40; int h = 110; int h2 = 20; // Définit la couleur de la Ellipse au blanc g.setColor (Color.White); // Cela crée arguments ellipse (x, y, largeur, hauteur) Ellipse2D cercle = Ellipse2D.Float nouvelle (largeur - 200, y + 50, 100, 100); // Ce remplit le cercle avec la couleur blanche g.fill (cercle); // Utilisez une boucle while au lieu de dessiner le même article 17 fois tout (nombre <17) { // Définit la couleur noire g.setColor (Color.black); // Cela crée arguments Rectangle (x1, y1, w, h) Rectangle2D rectangle1 = new Rectangle2D.Float (x1, y1, w, h); // Ce remplit le rectangle noir g.fill (rectangle1); // Ceci crée arguments Rectangle (x2, y2, w2, h2) Rectangle2D rectangle2 = new Rectangle2D.Float (x2, y2, w2, h2); g.fill (rectangle2); // Cela va créer un triangle avec GeneralPath utilisant x1 GeneralPath triangle1 GeneralPath = new (); triangle1.moveTo (x1, y + 590); triangle1.lineTo (x1 + 15, y + 560); triangle1.lineTo (x1 + 30, y + 590); triangle1.lineTo (x1, y + 590); g.fill (triangle1); // Augmenter le nombre de conception Numéro + = 1; // X1 x2 incrément et coordonne pour lequel il existe un espace entre le dessin x1 = + 50; x2 = + 60; } GeneralPath une GeneralPath = new (); one.moveTo (x + 300, y + 400); one.lineTo (x + 280, y + 300); one.lineTo (350 + x, y + 280); one.lineTo (350 + x, y + 400); one.lineTo (x + 300, y + 400); g.fill (un); g.setPaint (Color.DARK_GRAY); g.draw (un); Rectangle2D rectangle3 = new Rectangle2D.Float (x + 295, + 315 y, 15, 15); g.setPaint (Color.yellow); g.fill (rectangle3); g.setPaint (Color.RED); g.draw (rectangle3); Rectangle2D rectangle4 = new Rectangle2D.Float (350 + x, y + 250, 150, 160); g.setPaint (Color.BLACK); g.fill (rectangle4); g.setPaint (Color.DARK_GRAY); GeneralPath deux GeneralPath = new (); two.moveTo (500 + x, y + 280); two.lineTo (x + 570, y + 300); two.lineTo (x + 550, y + 400); two.lineTo (500 + x, y + 400); g.setPaint (Color.BLACK); g.fill (deux); g.setPaint (Color.DARK_GRAY); g.draw (deux); g.draw (rectangle4); Rectangle2D rectangle6 = new Rectangle2D.Float (x + 540, + 315 y, 15, 15); g.setPaint (Color.yellow); g.fill (rectangle6); g.setPaint (Color.RED); g.draw (rectangle6); Rectangle2D rectangle7 = new Rectangle2D.Float (x + 365, + 280 y, 20, 20); g.setPaint (Color.RED); g.draw (rectangle7); Rectangle2D rectangle8 = new Rectangle2D.Float (x + 400, + 280 y, 20, 20); g.setPaint (Color.yellow); g.fill (rectangle8); g.setPaint (Color.RED); g.draw (rectangle8); Rectangle2D rectangle9 = new Rectangle2D.Float (x + 430, + 280 y, 20, 20); g.setPaint (Color.yellow); g.fill (rectangle9); g.setPaint (Color.RED); g.draw (rectangle9); Rectangle2D rectangle10 = new Rectangle2D.Float (x + 460, + 280 y, 20, 20); g.setPaint (Color.RED); g.draw (rectangle10); GeneralPath trois GeneralPath = new (); three.moveTo (x + 280, y + 270); three.lineTo (x + 425, y + 170); three.lineTo (x + 560, y + 270); three.lineTo (x + 350, y + 270); g.setPaint (Color.BLACK); g.fill (trois); g.setPaint (Color.DARK_GRAY); g.draw (trois); GeneralPath quatre GeneralPath = new (); four.moveTo (x + 400, y + 410); four.lineTo (x + 400, y + 360); four.lineTo (x + 430, y + 310); four.lineTo (x + 460, y + 360); four.lineTo (x + 460, 410 + y); g.setPaint (Color.RED); g.draw (quatre); GeneralPath cinq GeneralPath = new (); five.moveTo (x + 410, 410 + y); five.lineTo (x + 410, y + 370); five.lineTo (x + 430, 325 + y); five.lineTo (x + 450, y + 370); five.lineTo (x + 450, y + 410); g.draw (cinq); Ellipse2D circle2 = new Ellipse2D.Float (x + 420, + 350 y, 20, 20); g.setColor (Color.DARK_GRAY); g.fill (circle2); g.setPaint (Color.BLACK); g.draw (circle2); } / ** * args Param * / Main (string [] args) {public static void Mystère Mystère = new (); Frame c = new Cadre (a); v.setVisible (true); } }

Mystère texte de classe Version

com.java2D.mysterydrawing emballage;

java.awt.Color importation;

java.awt.Graphics2D importation;

java.awt.geom.Ellipse2D importation;

java.awt.geom.GeneralPath importation;

java.awt.geom.Line2D importation;

java.awt.geom.Rectangle2D importation;


Mystère public class étend modèle {


Override

drawShape public void (Graphics2D g) {

// Définit la largeur et la hauteur équivalente à la JFrame.

int width = 900;

int height = 700;


int nombre = 0;

x1 int = 20;

int x2 = 0;

int y1 = 590;

int y2 = 620;

int w = 30;

int w2 = 40;

int h = 110;

int h2 = 20;


// Définit la couleur de la Ellipse au blanc

g.setColor (Color.White);

// Cela crée arguments ellipse (x, y, largeur, hauteur)

Ellipse2D cercle = Ellipse2D.Float nouvelle (largeur - 200, y + 50, 100, 100);

// Ce remplit le cercle avec la couleur blanche

g.fill (cercle);


// Utilisez une boucle while au lieu de dessiner le même article 17 fois

tout (nombre <17) {


// Définit la couleur noire

g.setColor (Color.black);


// Cela crée arguments Rectangle (x1, y1, w, h)

Rectangle2D rectangle1 = new Rectangle2D.Float (x1, y1, w, h);


// Ce remplit le rectangle noir

g.fill (rectangle1);


// Ceci crée arguments Rectangle (x2, y2, w2, h2)

Rectangle2D rectangle2 = new Rectangle2D.Float (x2, y2, w2, h2);

g.fill (rectangle2);


// Cela va créer un triangle avec GeneralPath utilisant x1

GeneralPath triangle1 GeneralPath = new ();

triangle1.moveTo (x1, y + 590);

triangle1.lineTo (x1 + 15, y + 560);

triangle1.lineTo (x1 + 30, y + 590);

triangle1.lineTo (x1, y + 590)

g.fill (triangle1);


// Augmenter le nombre de conception

Numéro + = 1;

// X1 x2 incrément et coordonne pour lequel il existe un espace entre le dessin

x1 = + 50;

x2 = + 60;


}


GeneralPath une GeneralPath = new ();

one.moveTo (x + 300, y + 400);

one.lineTo (x + 280, y + 300);

one.lineTo (350 + x, y + 280);

one.lineTo (350 + x, y + 400);

one.lineTo (x + 300, y + 400);

g.fill (un);

g.setPaint (Color.DARK_GRAY);

g.draw (un);


Rectangle2D rectangle3 = new Rectangle2D.Float (x + 295, + 315 y, 15, 15);

g.setPaint (Color.yellow);

g.fill (rectangle3);

g.setPaint (Color.RED);

g.draw (rectangle3);


Rectangle2D rectangle4 = new Rectangle2D.Float (350 + x, y + 250, 150, 160);

g.setPaint (Color.BLACK);

g.fill (rectangle4);

g.setPaint (Color.DARK_GRAY);


GeneralPath deux GeneralPath = new ();

two.moveTo (500 + x, y + 280);

two.lineTo (x + 570, y + 300);

two.lineTo (x + 550, y + 400);

two.lineTo (500 + x, y + 400);

g.setPaint (Color.BLACK);

g.fill (deux);

g.setPaint (Color.DARK_GRAY);

g.draw (deux);


g.draw (rectangle4);


Rectangle2D rectangle6 = new Rectangle2D.Float (x + 540, + 315 y, 15, 15);

g.setPaint (Color.yellow);

g.fill (rectangle6);

g.setPaint (Color.RED);

g.draw (rectangle6);


Rectangle2D rectangle7 = new Rectangle2D.Float (x + 365, + 280 y, 20, 20);

g.setPaint (Color.RED);

g.draw (rectangle7);


Rectangle2D rectangle8 = new Rectangle2D.Float (x + 400, + 280 y, 20, 20);

g.setPaint (Color.yellow);

g.fill (rectangle8);

g.setPaint (Color.RED);

g.draw (rectangle8);


Rectangle2D rectangle9 = new Rectangle2D.Float (x + 430, + 280 y, 20, 20);

g.setPaint (Color.yellow);

g.fill (rectangle9);

g.setPaint (Color.RED);

g.draw (rectangle9);


Rectangle2D rectangle10 = new Rectangle2D.Float (x + 460, + 280 y, 20, 20);

g.setPaint (Color.RED);

g.draw (rectangle10);


GeneralPath trois GeneralPath = new ();

three.moveTo (x + 280, y + 270);

three.lineTo (x + 425, y + 170);

three.lineTo (x + 560, y + 270);

three.lineTo (x + 350, y + 270);

g.setPaint (Color.BLACK);

g.fill (trois);

g.setPaint (Color.DARK_GRAY);

g.draw (trois);


GeneralPath quatre GeneralPath = new ();

four.moveTo (x + 400, y + 410);

four.lineTo (x + 400, y + 360);

four.lineTo (x + 430, y + 310);

four.lineTo (x + 460, y + 360);

four.lineTo (x + 460, 410 + y);

g.setPaint (Color.RED);

g.draw (quatre);


GeneralPath cinq GeneralPath = new ();

five.moveTo (x + 410, 410 + y);

five.lineTo (x + 410, y + 370);

five.lineTo (x + 430, 325 + y);

five.lineTo (x + 450, y + 370);

five.lineTo (x + 450, y + 410);

g.draw (cinq);


Ellipse2D circle2 = new Ellipse2D.Float (x + 420, + 350 y, 20, 20);

g.setColor (Color.DARK_GRAY);

g.fill (circle2);

g.setPaint (Color.BLACK);

g.draw (circle2);

}

/ **

* args Param

* /

Main (string [] args) {public static void


Mystère Mystère = new ();

Frame c = new Cadre (a);

v.setVisible (true);


}


}


Conception mystère révélé

Finale

Il ya beaucoup plus à Java 2D. Ce didacticiel a couvert les bases de commencer avec une langue drôle.

Je espère que vous avez apprécié cette série de tutoriel. Si vous voulez voir plus de tutoriels sur certains dessins 2D en Java, ne oubliez pas de me contacter et je verrai ce que je peux faire.

Si vous avez aimé ce tutoriel, se il vous plaît commenter et taux !!!

MERCI ENCORE-pour lire ces tutoriels !!! BONNE CHANCE !!!!!!!

(0)
(0)

Commentaires - 0

Sans commentaires

Ajouter un commentaire

smile smile smile smile smile smile smile smile
smile smile smile smile smile smile smile smile
smile smile smile smile smile smile smile smile
smile smile smile smile
Caractères restants: 3000
captcha