TP3 Dessiner avec java - Serveur pédagogique UFR Sciences et

publicité
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-
Téléchargement