IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

 Java Discussion :

Regler l'echelle d'un graphique


Sujet :

Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 5
    Par défaut Regler l'echelle d'un graphique
    Bonjour,
    Voila j'ai un probleme d'echelle pour l'affichage de mon graphe, je precise:
    J'ai un fichier avec des coordonnees de points (des reels) j'ai lu quelque part que avec java on ne pouvais representer que des entiers, donc en recuperant tous mes points je les multiplie par 1000 ou 10000 pour avoir plus de precision. Mais quand je trace mes points ils ne sont pas tous representes car la plus part sont en dehors de la fenetre.

    Merci Par avance.
    Cordialement deccan

    PS: Je vous joint mon code.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    package graphe2;
    import java.awt.Polygon;
    import java.io.*;
     
    public class CourbeMath {
    	public Polygon MesPolygones[];
     
     
    	public CourbeMath()
    	{
     
    	CalculPoints();
    	}
    public int NbPoly(){ //retourne le nombre de triangles dans le fichier
    	String chaine="";
     
    	String fich ="/home/makarov/four.msh";
    	File fichier = new File(fich);
    	//lecture du fichier texte	
    	try{
    		InputStream ips=new FileInputStream(fichier); 
    		InputStreamReader ipsr=new InputStreamReader(ips);
    		BufferedReader br=new BufferedReader(ipsr);
    		String ligne;
    		ligne=br.readLine();
     
    			chaine+=ligne;
     
    		br.close(); 
    	}		
    	catch (Exception e){
    		System.out.println(e.toString());
    	}
    	String delims = "[ ]+";
    	String[] tokens = chaine.split(delims);
    	int aInt = Integer.parseInt(tokens[1]);
     
    	return aInt;
    }
     
     
    	private void CalculPoints()
    	{
     
    	MesPolygones = new Polygon[this.NbPoly()];
     
    	String fich ="/home/makarov/plot";
    	File fichier = new File(fich);
    	int N=this.NbPoly();
    	try{
    		InputStream ips=new FileInputStream(fichier); 
    		InputStreamReader ipsr=new InputStreamReader(ips);
    		BufferedReader br=new BufferedReader(ipsr);
     
    		int k=0;	
    	for(int i = 0 ; i < 6*N ; i=i+6)
    	{
    		int x[] = new int[3];
    		int y[]= new int[3];
     
    		for(int j=0; j<3;j++){
    		String ligne;
    		String chaine="";
    		ligne=br.readLine();
    		chaine+=ligne;
     
    		String delims = "[ ]+";
    		String[] tokens = chaine.split(delims);
    		double xInt = Double.parseDouble(tokens[0]);
    		double yInt = Double.parseDouble(tokens[1]);
     
    		xInt=xInt*1000;
    		yInt=yInt*1000;
    		x[j]=(int)xInt;
    		y[j]=(int)yInt;
    		System.out.println("coordonnees"+x[j]+","+y[j]);
     
    	}
    		br.readLine();
    		br.readLine();
    		br.readLine();
    		MesPolygones[i-k*5]=new Polygon(x,y,3);
    		k++;
    	}
    	br.close(); 
    	}
    	catch (Exception e){
    		System.out.println(e.toString());
    	}
    	}
    }
    Classe main:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    package graphe2;
     
    import java.awt.Graphics;
     
    import javax.swing.JFrame;
    import javax.swing.JPanel;
     
     
    public class principal extends JPanel{
    	private CourbeMath C;
    	public principal() {C= new CourbeMath();} 
     
    	public void paint(Graphics g){
     
    		for(int i=0;i<C.NbPoly();i++){
    			g.drawPolygon(C.MesPolygones[i]);
    		}
    	}
    	/**
             * @param args
             */
    	public static void main(String[] args) {
    		// TODO Auto-generated method stub
    	JFrame frame = new JFrame();
    	frame.getContentPane().add(new principal());
    	frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    	frame.setSize(10000, 10000);
    	frame.pack();
    	frame.setVisible(true);
     
    	}
     
    }

  2. #2
    Rédacteur/Modérateur

    Avatar de bouye
    Homme Profil pro
    Information Technologies Specialist (Scientific Computing)
    Inscrit en
    Août 2005
    Messages
    6 913
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : Nouvelle-Calédonie

    Informations professionnelles :
    Activité : Information Technologies Specialist (Scientific Computing)
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Août 2005
    Messages : 6 913
    Billets dans le blog
    54
    Par défaut
    Citation Envoyé par deccan Voir le message
    Bonjour,
    j'ai lu quelque part que avec java on ne pouvais representer que des entiers,
    Je me demande bien quel est l'imbécile qui a été écrire un truc pareil... Encore un prof probablement.
    Merci de penser au tag quand une réponse a été apportée à votre question. Aucune réponse ne sera donnée à des messages privés portant sur des questions d'ordre technique. Les forums sont là pour que vous y postiez publiquement vos problèmes.

    suivez mon blog sur Développez.

    Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the universe trying to produce bigger and better idiots. So far, the universe is winning. ~ Rich Cook

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 5
    Par défaut
    Merci de la reponse.
    Enfait j'ai oublie de preciser que les points que je voulais representer forment des triangles, je les stocke donc dans des polygones (classe Polygon) donc je dois quand meme utiliser des entiers si je comprend bien

  4. #4
    Rédacteur/Modérateur

    Avatar de bouye
    Homme Profil pro
    Information Technologies Specialist (Scientific Computing)
    Inscrit en
    Août 2005
    Messages
    6 913
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : Nouvelle-Calédonie

    Informations professionnelles :
    Activité : Information Technologies Specialist (Scientific Computing)
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Août 2005
    Messages : 6 913
    Billets dans le blog
    54
    Par défaut
    Hum;, hum... il existe d'autres classes qui prennent autre chose que des entiers pour des coordonnées (des floats et des doubles), va voir dans le package java.awt.geom

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Graphics2D g2d = (Graphics2D)g;
    Shape s = ...........
    g2d.setPaint(Color.BLACK);
    g2d.draw(s);
    Merci de penser au tag quand une réponse a été apportée à votre question. Aucune réponse ne sera donnée à des messages privés portant sur des questions d'ordre technique. Les forums sont là pour que vous y postiez publiquement vos problèmes.

    suivez mon blog sur Développez.

    Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the universe trying to produce bigger and better idiots. So far, the universe is winning. ~ Rich Cook

  5. #5
    Rédacteur/Modérateur

    Avatar de bouye
    Homme Profil pro
    Information Technologies Specialist (Scientific Computing)
    Inscrit en
    Août 2005
    Messages
    6 913
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : Nouvelle-Calédonie

    Informations professionnelles :
    Activité : Information Technologies Specialist (Scientific Computing)
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Août 2005
    Messages : 6 913
    Billets dans le blog
    54
    Par défaut
    Dans ton cas je te conseilles d'aller voir du coté de Path2D, Path2D.Double, Path2D.Float et GeneralPath.
    Merci de penser au tag quand une réponse a été apportée à votre question. Aucune réponse ne sera donnée à des messages privés portant sur des questions d'ordre technique. Les forums sont là pour que vous y postiez publiquement vos problèmes.

    suivez mon blog sur Développez.

    Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the universe trying to produce bigger and better idiots. So far, the universe is winning. ~ Rich Cook

  6. #6
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 5
    Par défaut
    Merci de ta reponse,

    J'ai essaye en utilisant des Graphics2D, mais maintenant le shemas est trop petit (encore un probleme d'echelle)
    Si vous avez des idees merci par avance.


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    package graphe2;
    import java.awt.Polygon;
    import java.io.*;
     
    public class CourbeMath {
    	public double MesX[][];
    	public double MesY[][];
     
     
    	public CourbeMath()
    	{
     
    	CalculPoints();
    	}
    public int NbPoly(){ //retourne le nombre de triangles dans le fichier
    	String chaine="";
     
    	String fich ="/home/makarov/four.msh";
    	File fichier = new File(fich);
    	//lecture du fichier texte	
    	try{
    		InputStream ips=new FileInputStream(fichier); 
    		InputStreamReader ipsr=new InputStreamReader(ips);
    		BufferedReader br=new BufferedReader(ipsr);
    		String ligne;
    		ligne=br.readLine();
     
    			chaine+=ligne;
     
    		br.close(); 
    	}		
    	catch (Exception e){
    		System.out.println(e.toString());
    	}
    	String delims = "[ ]+";
    	String[] tokens = chaine.split(delims);
    	int aInt = Integer.parseInt(tokens[1]);
     
    	return aInt;
    }
     
     
    	private void CalculPoints()
    	{
     
    	MesX = new double[this.NbPoly()][4];
    	MesY = new double[this.NbPoly()][4];
    	String fich ="/home/makarov/plot";
    	File fichier = new File(fich);
    	int N=this.NbPoly();
    	try{
    		InputStream ips=new FileInputStream(fichier); 
    		InputStreamReader ipsr=new InputStreamReader(ips);
    		BufferedReader br=new BufferedReader(ipsr);
     
    		int k=0;	
    	for(int i = 0 ; i < 6*N ; i=i+6)
    	{
    		//int x[] = new int[3];
    		//int y[]= new int[3];
     
    		for(int j=0; j<4;j++){
    		String ligne;
    		String chaine="";
    		ligne=br.readLine();
    		chaine+=ligne;
     
    		String delims = "[ ]+";
    		String[] tokens = chaine.split(delims);
    		double xInt = Double.parseDouble(tokens[0]);
    		double yInt = Double.parseDouble(tokens[1]);
     
    		xInt=xInt*100;
    		yInt=yInt*100;
    		/*x[j]=(int)xInt;
    		y[j]=(int)yInt;*/
    		MesX[i-k*5][j]=xInt;
    		MesY[i-k*5][j]=yInt;
    		//System.out.println("coordonnees"+x[j]+","+y[j]);
     
    	}
    		br.readLine();
    		br.readLine();
    		//MesPolygones[i-k*5]=new Polygon(x,y,3);
    		k++;
    	}
    	br.close(); 
    	}
    	catch (Exception e){
    		System.out.println(e.toString());
    	}
    	}
    }
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    package graphe2;
     
    import java.awt.Graphics;
    import java.awt.Graphics2D;
    import java.awt.geom.GeneralPath;
     
    import javax.swing.JFrame;
    import javax.swing.JPanel;
     
     
    public class principal extends JPanel{
     
    	private CourbeMath C;
    	public principal() {C= new CourbeMath();} 
     
    	public void paint(Graphics g){
    		/*Graphics2D g2 = (Graphics2D) g;
     
    		int x2Points[] = {50, 0,100};
    		int y2Points[] = {25, 50,50};
    		GeneralPath polyline = 
    			new GeneralPath(GeneralPath.WIND_EVEN_ODD, x2Points.length);
     
    		polyline.moveTo (x2Points[0], y2Points[0]);
     
    		for (int index = 1; index < x2Points.length; index++) {
    		 	 polyline.lineTo(x2Points[index], y2Points[index]);
    		};
     
    		g2.draw(polyline);*/
     
    		Graphics2D g2 = (Graphics2D) g;
     
    		for(int i=0;i<C.NbPoly();i++){
     
     
    		System.out.println("Coordonnees="+C.MesX[i][0]+","+C.MesY[i][0]);
     
    		GeneralPath polyline = 
    			new GeneralPath(GeneralPath.WIND_EVEN_ODD, C.MesX[i].length);
     
    		polyline.moveTo (C.MesX[i][0], C.MesY[i][0]);
     
    		for (int index = 1; index < C.MesX[i].length; index++) {
    		 	 polyline.lineTo(C.MesX[i][index], C.MesY[i][index]);
    		};
     
    		g2.draw(polyline);
    		}
     
     
     
     
     
     
     
    	}
    	/**
             * @param args
             */
    	public static void main(String[] args) {
    		// TODO Auto-generated method stub
    	JFrame frame = new JFrame();
    	frame.getContentPane().add(new principal());
    	frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    	frame.setSize(100, 100);
    	frame.setVisible(true);
     
    	}
     
    }

  7. #7
    Membre Expert
    Avatar de professeur shadoko
    Homme Profil pro
    retraité nostalgique Java SE
    Inscrit en
    Juillet 2006
    Messages
    1 257
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 77
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : retraité nostalgique Java SE

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 257
    Par défaut
    Citation Envoyé par bouye Voir le message
    Je me demande bien quel est l'imbécile qui a été écrire un truc pareil... Encore un prof probablement.
    <troll>
    intéressant d'où vient cet amer commentaire?
    </troll>

Discussions similaires

  1. [XL-2000] Echelles dans un graphique
    Par Ach29 dans le forum Excel
    Réponses: 4
    Dernier message: 14/05/2009, 18h47
  2. LIFETEST: Changer les echelles d'un graphique
    Par fafabzh6 dans le forum SAS STAT
    Réponses: 0
    Dernier message: 13/06/2008, 10h51
  3. ajustement automatique des echelles d'un graphique
    Par riri2938 dans le forum VBA Access
    Réponses: 2
    Dernier message: 19/12/2007, 21h58
  4. pb echelle auto sur graphique
    Par lbar012001 dans le forum Excel
    Réponses: 1
    Dernier message: 29/11/2007, 12h48
  5. (vba excel) echelle horaire pour graphique
    Par DirtyA:ex dans le forum Macros et VBA Excel
    Réponses: 13
    Dernier message: 27/06/2006, 15h00

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo