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 java.awt.*;
import java.awt.event.*;
import java.awt.geom.*;
import 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; //========= initialisations int x = 50;
int y = 10;
int rectWidth = 80;
int 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 java.awt.*;
import java.awt.event.*;
import java.awt.geom.*;
import javax.swing.*;
public class dessineRec extends JApplet { final static Color bg = Color.white;
final static Color fg = Color.black;
final static Color red = Color.red;
final static Color 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 x = 50;
int y = 10;
int rectWidth = 80;
int 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-