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 :
le soucis c'est le
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());quand j'essaies d'afficher les coordonnées du rectangle j'obtiens
Code : Sélectionner tout - Visualiser dans une fenêtre à part getDataArea();
alors que je devrais obtenir les coordonnées du rectangle dans mon chartPanel ...
Code : Sélectionner tout - Visualiser dans une fenêtre à part [x=0;y=0;width=0;height=0]
quelqu'un pourrait m'expliquer ce bug ?
Cordialement Merci,
Valus
PS : j'ai fait plusieurs essais dont voici les résultats :
a l'affichage :
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)+"!");
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 ....
Partager