Document de travail pour le TP noté

publicité
Module Info31 – L2 Sciences & Techniques
Université de Bourgogne
Document de travail pour le TP noté – tous sujets confondus
Vous disposez dans l'archive correspondant à votre sujet :
– de l'énoncé à traiter (document sujetxxxx.pdf)
– d'un schéma de programme java à compléter (fichier de nom sujet_base.java). Ce schéma de
programme doit être renommé en fonction de votre sujet (sujetxxxx.java)
– pour référence, si nécessaire, du programme exhaustif de démonstration des primitives graphiques
fournies par Oracle (dessineOracle.java) et d'un extrait (test.java)
Vous devez :
– récupérer et ouvrir l'archive correspondant à votre sujet et renommer le répertoire qu'elle contient à
vos noms et prénoms, sans accents ni espaces
– renommer le schéma de programme sujet_base.java selon votre sujet (sujetxxxx.java) :
n'oubliez pas de modifier le nom de la classe ainsi que la déclaration d'objet dans la méthode main()
– modifier le titre de la fenêtre graphique avec vos noms, prénoms et votre groupe de TP noté (le
nom du groupe est indiqué sur la feuille d'émargement)
– écrire et tester le programme qui vous est demandé
– faire une copie d'écran de la fenêtre graphique que génère votre programme
– laisser dans votre répertoire de travail exclusivement :
– le source de votre programme sujetxxxx.java
– la copie d'écran que vous avez faite
– faire une archive de votre répertoire de travail et envoyer par email cette archive à :
[email protected]
ET à votre responsable de TP noté :
[email protected] ou [email protected]
Vous pouvez avoir besoin :
– de passer des paramètres à votre programme Java lorsque vous l'exécutez. Par exemple, pour
récupérer dans les variables entières a et b les deux paramètres entiers passés à un programme Java,
vous devez écrire dans la méthode main de votre programme :
public static void main(String s[])
{ int a,b ;
a=Integer.parseInt(s[0]);
b=Integer.parseInt(s[1]);
– d'extraire le ie caractère d'une chaîne (variable ch de type String) avec :
ch.charAt(i)
attention, le premier caractère de la chaîne est à l'indice 0
– de calculer une racine carrée avec : Math.sqrt()
TP noté-1-
Module Info31 – L2 Sciences & Techniques
Université de Bourgogne
– de programmer une pause dans l'exécution de votre programme avec :
int attente=300; // en millisecondes
try { Thread.sleep(attente);
} catch ( java.lang.InterruptedException ie)
{ //System.out.println("*");
}
– de primitives graphiques
celles qui sont présentées ci-dessous s'appliquent à g2, un objet de la classe Graphics2D :
Pour choisir des couleurs de tracé ou de coloriage, vous disposez de :
g2.setColor(Color.blue);
g2.setPaint(Color.blue);
Les couleurs disponibles sont :
static
static
static
static
static
static
static
static
static
static
static
static
static
Color
Color
Color
Color
Color
Color
Color
Color
Color
Color
Color
Color
Color
black
blue
cyan
darkGray
gray
green
lightGray
magenta
orange
pink
red
white
yellow
Pour définir l'épaisseur du trait à utiliser (un entier ou un réel de type float), vous disposez de :
g2.setStroke(new BasicStroke(epaisseur));
Pour tracer ou colorier des figures géométriques simples, vous disposez de :
A
(xa,ya)
B
(xb,yb)
g2.draw(new Line2D.Double(xa,ya,xb,yb));
SEGMENT
A (xa,ya)
g2.draw(new Rectangle2D.Double(xa, ya, larg, h));
h
larg
g2.fill(new Rectangle2D.Double(xa, ya, larg, h));
RECTANGLE-CARRE
A (xa,ya)
g2.draw(new Ellipse2D.Double(xa, ya, diam, diam));
diam
diam
g2.fill(new Ellipse2D.Double(xa, ya, diam, diam));
CERCLE
Dans les primitives ci-dessus, g2.draw permet de dessiner un contour alors que g2.fill permet de
colorier la forme indiquée.
TP noté-2-
Module Info31 – L2 Sciences & Techniques
Université de Bourgogne
Pour définir (puis tracer ou colorier) un polygone, vous devez :
– déclarer une variable polygone par
GeneralPath nom = new GeneralPath(GeneralPath.WIND_EVEN_ODD,nb);
où nb est le nombre de points du polygone,
– indiquer les sommets du polygone par
nom.moveTo(x,x);
nom.lineTo(x,x);
ces méthodes permettent respectivement de se déplacer au point indiqué (par ses
coordonnées x et y) ou de tracer un segment depuis la position courante vers le point indiqué,
– ne pas oublier de revenir au premier sommet par
par nom.closePath()
nom.moveTo(x,x)
ou de fermer votre polygone
– utiliser les méthodes
g2.draw(nom);
g2.fill(nom);
pour tracer ou de colorier le polygone
Programme d'exemple test.java (extrait) :
public void paint(Graphics g)
{
dessine(g);
// doit appeler votre méthode de dessin
}// fin methode
// paramètre g obligatoire
// vous pouvez ajouter d'autres paramètres
public void dessine(Graphics g)
{ Graphics2D g2 = (Graphics2D) g;
g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
GeneralPath tr = new GeneralPath(GeneralPath.WIND_EVEN_ODD,3); // triangle gris via
// polygone 3 sommets
tr.moveTo(10,100);
tr.lineTo(10,140);
tr.lineTo(40,140);
tr.closePath();
g2.setPaint(Color.lightGray);
g2.fill(tr);
g2.setStroke(new BasicStroke(2));
// trait epais
g2.setColor(Color.blue);
g2.draw(new Line2D.Double(10,10,60,10));
// tracé d'un segment bleu
g2.setColor(Color.red);
g2.draw(new Line2D.Double(5,7,5,7));
// tracé d'un point rouge
g2.setColor(Color.black);
g2.setStroke(new BasicStroke(1));
// trait fin et couleur noire
g2.draw(new Rectangle2D.Double(10,20, 10, 10));
g2.draw(new Rectangle2D.Double(40,20, 30, 10));
g2.draw(new Ellipse2D.Double(80,20,10,10));
// tracé: carré-rectangle-cercle
g2.fill(new Rectangle2D.Double(10,50, 10, 10));
g2.fill(new Rectangle2D.Double(40,50, 30, 10));
g2.fill(new Ellipse2D.Double(80,50,10,10));
// remplissage
}// fin dessine
TP noté-3-
Module Info31 – L2 Sciences & Techniques
Université de Bourgogne
quelque soit votre sujet
vous n'avez pas à tenir compte de l'affichage inversé de la fenêtre graphique
TP noté-4-
Téléchargement