Veröffentlicht 9. Juli 201114 j Hallo, ich hab folgendes Problem unzwar, ich hab meine Werte in einer Jlist gespeichert. Jetzt soll ich anhand der Werte von der Jlist automatisch eine Kurve gezeichnet werden anhand. g.drawline?? irgendwie steh ich total aufm Schlauch.. ?? Könnt ihr mir irgendwie helfen??
9. Juli 201114 j Du musst die Werte mit einem Faktor (das Ergebnis muss immer geringer als die max. Höhe des Bildbereichs sein) multiplizieren, so dass die Kurve angepasst an die Bildhöhe immer den Werteverlauf widerspiegelt. Des Weiteren musst du darauf achten, wie viele Pixel du horizontal darstellen kannst (Stichwort Schrittweite) ohne das sich das Aussehen der Kurve verändert.
9. Juli 201114 j Autor Ja des problem ist das ich irgendwie ned weiß wie ich darauf zugreife..besser gesagt mit g.drawlin(wert,wert,wert,wert) wie ich des alles mach...kannst du vl etwas genauer werden? DAnke
9. Juli 201114 j Du musst die Pixelpositionen anhand Deiner Daten schon selbst passend ausrechnen. Alternativen für solche Graphen gibt es genug z.B. Java Graph Drawing Component
9. Juli 201114 j Autor ahh..ich glaub ich hab mich falsch ausgedrückt es sollen keine Kurven sein, sondern einfach mit g.drawline eine gerade linie je nachdem wie hoch der wert ist umso länger ist die linie. ??
9. Juli 201114 j ahh..ich glaub ich hab mich falsch ausgedrückt es sollen keine Kurven sein, sondern einfach mit g.drawline eine gerade linie je nachdem wie hoch der wert ist umso länger ist die linie. Das ist das gleiche, Du musst eben dann die Länge der Linie passend ausrechnen. Z.B. eine Linie die von der X-Ache bis zu einem gewünschten Wert geht, die Länge ergibt sich aus der Temperatur und der Größe der Zeichenfläche (analog die X-Position)
9. Juli 201114 j Autor ja schon aber wie mache ich das..ich arbeite mit einer Jlist und einem vector. Aber wie greife ich darauf zu???
9. Juli 201114 j Autor Kannst du mir da ein Beispiel geben z.b. ich habe einen Maximalwert und ich will das er die Linie zeichnet im Panel mein größe des Panel habe ich mit zeichnung1.setSize(400,400)
9. Juli 201114 j Angenommen deine Werte bewegen sich im Bereich [0, 30], dann bildest du das auf den Bereich [0, 400] ab. Der Wert 30 bekommt in dann in deinem Zeichenbereich den Y-Wert 400, so dass er den maximalen Wert darstellt. Um eine gleichmäßige Aufteilung zu bekommen musst du noch die Schrittweite bestimmen, damit eine Differenz von einem Wert zum anderen auch immer den selben Abstand hat. Bei einer Höhe von 400 Pixeln und max. 30 Werten beträgt der Pixelabstand von einem Wert zum anderen ~13,3 Pixel. Der Wert 5 bekommt dann bspw. den Y-Wert ~66 und der Wert 29 den Y-Wert 387. Das klappt auf Anhieb vermutlich nicht, dass du musst du ein bißchen ausprobieren. Bearbeitet 9. Juli 201114 j von lupo49
Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.