Module Info31 – L2 Sciences & Techniques Université de Bourgogne Dominique Michelucci TP3 Dessiner avec java Pour dessiner (non récursif) avec Java, utilisez la base du programme dessineSegment.java qui est disponible sur ufrsciencestech. Seules les parties en rouge doivent être adaptées. // d'après http://docs.oracle.com/javase/tutorial/2d/geometry/examples/ShapesDemo2D.java import import import import java.awt.*; java.awt.event.*; java.awt.geom.*; javax.swing.*; public class dessineSegment extends JApplet { final static Color bg = Color.white; // définitions des couleurs final static Color fg = Color.black; final static Color red = Color.red; final static Color white = Color.white; public void init() { //choix des couleurs d'arrière-plan et de tracé setBackground(bg); setForeground(fg); } public void paint(Graphics g) { Graphics2D g2 = (Graphics2D) g; g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON); int espacement = 100; int int int int //========= initialisations x = 50; y = 10; rectWidth = 80; rectHeight = 80; //========= dessin proprement dit // segment : donner les coordonnées x et y des deux points g2.draw(new Line2D.Double(x, y+rectHeight-1, x + rectWidth, y)); // déplacement et changement de couleur x += espacement; g2.setPaint(red); // carre : utiliser le rectangle // donner les coordonnées x et y du point en haut à gauche // ainsi que longueur et largeur g2.draw(new Rectangle2D.Double(x, y, rectWidth, rectHeight)); } // fin de paint public static void main(String s[]) { JFrame f = new JFrame("segment et carré"); f.addWindowListener(new WindowAdapter() { public void windowClosing(WindowEvent e) {System.exit(0);} }); JApplet applet = new dessineSegment(); f.getContentPane().add("Center", applet); applet.init(); f.pack(); f.setSize(new Dimension(300,150)); // taille de la fenêtre f.setVisible(true); } // fin du main }// fin de la classe TP3-1- Module Info31 – L2 Sciences & Techniques Université de Bourgogne Dominique Michelucci Pour dessiner en récursif avec Java, utilisez la base du programme dessineRec.java qui est disponible sur ufrsciencestech. Seules les parties en bleu sont différentes de la version non récursive. // d'après http://docs.oracle.com/javase/tutorial/2d/geometry/examples/ShapesDemo2D.java import import import import java.awt.*; java.awt.event.*; java.awt.geom.*; javax.swing.*; public class dessineRec extends JApplet { final final final final static static static static Color Color Color Color bg = Color.white; fg = Color.black; red = Color.red; white = Color.white; public void init() { //Initialize drawing colors setBackground(bg); setForeground(fg); } public void paint(Graphics g) { dessine(g); } public void dessine(Graphics g) { Graphics2D g2 = (Graphics2D) g; g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON); int espacement = 100; int int int int x = 50; y = 10; rectWidth = 80; rectHeight = 80; // segment : donner les coordonnées x et y des deux points g2.draw(new Line2D.Double(x, y+rectHeight-1, x + rectWidth, y)); // déplacement et changement de couleur x += espacement; g2.setPaint(red); // carre : utiliser le rectangle // donner les coordonnées x et y du point en haut à gauche // ainsi que longueur et largeur g2.draw(new Rectangle2D.Double(x, y, rectWidth, rectHeight)); } public static void main(String s[]) { JFrame f = new JFrame("pour récursif"); f.addWindowListener(new WindowAdapter() { public void windowClosing(WindowEvent e) {System.exit(0);} }); JApplet applet = new dessineRec(); f.getContentPane().add("Center", applet); applet.init(); f.pack(); f.setSize(new Dimension(300,150)); f.setVisible(true); } } Ecrivez et testez les programmes de fractales vues en TD. TP3-2-