Hi zusammen,
ich habe eine einfach Matheaufgabe, bei dir ich aber leider irgendwie verzweifle...
Stellt euch vor ich habe einen Array mit 2000 Daten.
Diesen möchte ich auf einem Bereich (JPanel) darstellen, welcher z.B. 600 Pixel breit ist (Die breite des JPanels kann ich vergrößern/verkleinern).
Folglich fallen mehrere Daten auf ein Pixel.
Hier mein Code indem ich die Umrechnung durchführe. Dabei möchte ich für jeden Pixel (X-Achse) die Positionen der Daten "von" - "bis" erhalten, die in diesem Pixel enthalten sind:
Könnt ihr mir vielleicht einen Tip geben, wie ich die Daten korrekt auf den Wertebereich verteilen kann?
ich habe eine einfach Matheaufgabe, bei dir ich aber leider irgendwie verzweifle...
Stellt euch vor ich habe einen Array mit 2000 Daten.
Diesen möchte ich auf einem Bereich (JPanel) darstellen, welcher z.B. 600 Pixel breit ist (Die breite des JPanels kann ich vergrößern/verkleinern).
Folglich fallen mehrere Daten auf ein Pixel.
Hier mein Code indem ich die Umrechnung durchführe. Dabei möchte ich für jeden Pixel (X-Achse) die Positionen der Daten "von" - "bis" erhalten, die in diesem Pixel enthalten sind:
Code:
public FromToPosition getFromToPosition(int widthWindow, MyModel model, double mousePosX){
long lengthData = model.getLengthOfData();
long end_Data= model.getEndPositionOfData();
// +1, da mousePosX bei 0 beginnt
double mousePositionX = mousePosX + 1.;
double val = (double)lengthData /(double)widthWindow;
long from = Math.round((mousePositionX-1.) * val);
if (from == 0)from=1;
if(from >end_Data ){
from = end_Data;
}
long to = Math.round(mousePositionX * val);
if (to == 0)to=1;
if(to > end_Data ){
to = end_Data;
}
// FromToPosition ist einfach ein Objekt, welches "von" und "bis" enthält
return new FromToPosition(from, to);
}
Könnt ihr mir vielleicht einen Tip geben, wie ich die Daten korrekt auf den Wertebereich verteilen kann?