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

2D Java Discussion :

[JFreeChart] DataArea nulle ?


Sujet :

2D Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre Expert
    Avatar de vpourchet
    Homme Profil pro
    Integrateur Systemes & Virtualisation
    Inscrit en
    Avril 2008
    Messages
    1 159
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Integrateur Systemes & Virtualisation
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2008
    Messages : 1 159
    Par défaut [JFreeChart] DataArea nulle ?
    bonjour, j'essaies de manipuler des nuages de points avec l'API JFreeChart.Mais un probleme se pose a moi :

    j'explique ...


    j'ai dans un fichier des coordonnées pour tracer une ellipse, jusque la pas de soucis. Je les récupere aucun probleme. J'ai le x et le Y d'un point de l'ellipse tout baigne, mais l'ennui c'est que j ai la hauteur et la largeur de l'ellipse en pixel ... j'ai lu quelquepart qu'il fallait les convertir de cette façon :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    double mouseXX = xAxis.java2DToValue(((int)def[2]), pnlChart.getChartRenderingInfo().getPlotInfo().getDataArea(), pnlChart.getChart().getXYPlot().getDomainAxisEdge());
                double mouseYY = yAxis.java2DToValue(((int)def[3]), pnlChart.getChartRenderingInfo().getPlotInfo().getDataArea(), pnlChart.getChart().getXYPlot().getRangeAxisEdge());
    le soucis c'est le quand j'essaies d'afficher les coordonnées du rectangle j'obtiens
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    [x=0;y=0;width=0;height=0]
    alors que je devrais obtenir les coordonnées du rectangle dans mon chartPanel ...


    quelqu'un pourrait m'expliquer ce bug ?


    Cordialement Merci,

    Valus

    PS : j'ai fait plusieurs essais dont voici les résultats :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    ValueAxis xAxis = pnlChart.getChart().getXYPlot().getDomainAxis();
                ValueAxis yAxis = pnlChart.getChart().getXYPlot().getRangeAxis();
                double mouseXX = xAxis.java2DToValue(((int)def[2]), pnlChart.getScreenDataArea(), pnlChart.getChart().getXYPlot().getDomainAxisEdge());
                double mouseYY = yAxis.java2DToValue(((int)def[3]), pnlChart.getScreenDataArea(), pnlChart.getChart().getXYPlot().getRangeAxisEdge());
     
                System.out.println("apres dépixelisation : X = "+(int)mouseXX+", Y = "+(int)mouseYY);
                double mouseXO = /*mouseXX - */ xAxis.java2DToValue(0.0, pnlChart.getChartRenderingInfo().getChartArea(), pnlChart.getChart().getXYPlot().getDomainAxisEdge());
                double mouseYO = /* mouseYY - */ yAxis.java2DToValue(0.0, pnlChart.getChartRenderingInfo().getChartArea(), pnlChart.getChart().getXYPlot().getRangeAxisEdge());
                System.out.println("apres apres mois zéro : X = "+mouseXO+", Y = "+(int)mouseYO);
                System.out.println("res = X : "+ (mouseXX)+";Y : "+(mouseYY)+"!");
    a l'affichage :

    apres dépixelisation : X = 2147483647, Y = 2147483647
    apres apres mois zéro : X = 0.002872812565288128, Y = 12100
    res = X : Infinity;Y : Infinity!



    je suis largué la ....

  2. #2
    Membre confirmé Avatar de corwin
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2002
    Messages
    85
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Avril 2002
    Messages : 85
    Par défaut
    Salut moi je ferais comme ca :
    // x,y valeur en pixel
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Point2D p = chartPanel.translateScreenToJava2D(new Point(x, y));
    // recup le dataarea
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    XYPlot plot = chartPanel.getChart().getXYPlot();
    Rectangle2D dataArea = chartPanel.getChartRenderingInfo().getPlotInfo().getDataArea();
    // puis conversion
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    double xx = plot.getDomainAxis().java2DToValue(
                p.getX(), dataArea, plot.getDomainAxisEdge()
            );
    double yy = plot.getRangeAxis().java2DToValue(
                p.getY(), dataArea, plot.getRangeAxisEdge()
            );
    enfin tu peux t'en inspirer

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. PROBLEME AVEC LES REQUETES IS NULL / NOT EXISTS
    Par sylvaine dans le forum Langage SQL
    Réponses: 5
    Dernier message: 04/06/2004, 13h26
  2. Comment rediriger la sortie vers /dev/null
    Par dclink dans le forum C
    Réponses: 4
    Dernier message: 24/06/2003, 18h23
  3. Tester si un champ est NULL
    Par titititi007 dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 19/06/2003, 10h17
  4. [VB6] [BDD] Recordset et champ égal à Null
    Par Gr|ppen dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 07/03/2003, 10h00
  5. "ALTERER" une col. NULL en NOT NULL - Int
    Par Gandalf24 dans le forum SQL
    Réponses: 2
    Dernier message: 28/12/2002, 00h07

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