Aller au menu - Aller au contenu

[Plan du site] Vous êtes ici --- > Le Site du Zéro > Les forums > Programmation > Langage Java > [java] Mon beau dessin s'affiche aléatoirement > Lecture du sujet

[java] Mon beau dessin s'affiche aléatoirement

alors que rien n'est aléatoire dans mon code !

Vous devez être inscrit pour pouvoir poster des messages

Page : 1 
Auteur Message
1 visiteur sur ce sujet (1 anonyme)
Page : 1 
Hors ligne mysterix # Posté le 02/01/2006 à 14:32:39
Avatar
Groupe : Membres
Bonjour,

J'ai fait un programme java qui doit afficher un dessin (le "flocon de koch", une courbe qui ressemble à un flocon de neige)
La compilation se passe bien.

Cependant, quand j'exécute sur mon PC, c'est bizarre :
un coup ça s'affiche bien mais pas tout,
un coup 2 branches s'affichnt n'importe où
un coup ça s'affiche comme au début...

Pourtant rien n'est aléatoire dans mon code, que voici :

Code : Java

import java.awt.*;
import java.awt.event.*;

class frac {
//fonctions de calcul de coordonnees 
final static double RACINE3SUR2 = 0.8660254040;
static double triangleX(double ax, double ay, double bx, double by) {
  return (bx + ax) / 2. + (by - ay) * RACINE3SUR2;
}
static double triangleY(double ax, double ay, double bx, double by) {
  return (by + ay) / 2. - (bx - ax) * RACINE3SUR2;
}   
static double xpremiertiers(double ax, double ay, double bx, double by) {
return ax+(bx-ax)/3;
}
static double ypremiertiers(double ax, double ay, double bx, double by) {
return ay+(by-ay)/3;
}
static double xsecondtiers(double ax, double ay, double bx, double by) {
return bx+(ax-bx)/3;
}
static double ysecondtiers(double ax, double ay, double bx, double by) {
return by+(ay-by)/3;
} 
//fin des fonctions de calcul des cooordonnees
//affichage d'un segment developpe a l'ordre n
static void traitrecursif(double ax, double ay, double bx, double by, int ordre,Graphics dessin) {
if (ordre == 1) {int ax1= (int) ax;int ay1= (int) ay;int bx1= (int) bx;int by1= (int) by;
                 dessin.drawLine(ax1,ay1,bx1,by1);}
else {double mx= xpremiertiers(ax,ay,bx,by);       
      double my= ypremiertiers(ax,ay,bx,by);
      double px= xsecondtiers(ax,ay,bx,by);
      double py= ysecondtiers(ax,ay,bx,by);
      double nx= triangleX(mx,my,px,py);
      double ny= triangleY(mx,my,px,py);
      traitrecursif(ax,ay,mx,my,ordre-1, dessin);
      traitrecursif(mx,my,nx,ny,ordre-1, dessin);
      traitrecursif(nx,ny,px,py,ordre-1, dessin);
      traitrecursif(px,py,bx,by,ordre-1, dessin);}
   }
//fin de l'affichage d'un segment developpe a l'ordre n
//affichage fenetre et flocon     
static Graphics affiche (int h, int l, int ordre) {
Frame fenetre = new Frame("Dessin");
fenetre.addWindowListener(new WindowAdapter() {
  public void windowClosing(WindowEvent we) {
    System.out.println("Fenetre fermee, c'est fini.");
    System.exit(0);
  }
});
fenetre.setBounds(10,10, l, h);
fenetre.setBackground(Color.white);
fenetre.setForeground(Color.black);
fenetre.setVisible(true);
Graphics dessin = fenetre.getGraphics();
double gx=150;double gy=300; double hx=300; double hy=300; double ix=triangleX(gx,gy,hx,hy); double iy=triangleY(gx,gy,hx,hy);
traitrecursif(hx,hy,gx,gy,ordre,dessin);
traitrecursif(ix,iy,hx,hy,ordre,dessin);
traitrecursif(gx,gy,ix,iy,ordre,dessin);
return dessin;
    }
//fin de l'affichage fenetre et flocon
   
//fonction main   
public static void main (String[] args) {
affiche(500,500,5);
}
    }
//fin de la fonction main



Quelqu'un saurait me corriger ça ?

Merci beaucoup d'avance...

Envie d'énigmes tortueuses ? :euh:
Alors à bientôt sur Mysterix !

Envie d'art sympa plutôt ? ^^
Alors allez voir ce que fait Emmanuel Harel !
 
Hors ligne mythrys # Posté le 03/01/2006 à 23:10:04
Avatar
Groupe : Membres
je vais pas être désagréable mais personnellement un code comme ca, ca me fait peur, presqu'aucun commentaire, des paramètre qui on des noms pas plus long que deux lettres. Commente et clarifie un peu tout ca. Un code ca doit respirer... et puis aussi tu pourrais nous dire ce qui va pas
Édité le 03/01/2006 à 23:11:03 par mythrys
Hors ligne mysterix # Posté le 04/01/2006 à 11:33:25
Avatar
Groupe : Membres
En fait il n'y a a priori pas besoin de lire le code.

C'est un programe qui dessine ça, à l'ordre voulu.

J'aimerais surtout savoir si certains ont déjà eu des problèmes d'affichage de leurs dessins en java, et s'ils ont trouvé des solutions.

Envie d'énigmes tortueuses ? :euh:
Alors à bientôt sur Mysterix !

Envie d'art sympa plutôt ? ^^
Alors allez voir ce que fait Emmanuel Harel !
 

Retour au forum "Langage Java" ou à la liste des forums

Vous devez être inscrit pour pouvoir poster des messages

Changer de design | En savoir plus | Plan du site | Politique d'accessibilité | Règles | RSS tutoriels | RSS news
Édité par Simple IT SARL : Nous contacter | Notre blog | Revue de presse | Publicité

Y'a plus rien à lire, faut remonter maintenant !

Hébergement web - Correction de tutoriels - Créer un site
Vous souhaitez apparaître ici ? Contactez-nous.

Nombre de connectés 108 Zéros connectés | Requêtes SQL 6 requêtes | Temps de génération de la page : Total (SQL) 0.0212s (0.007s)