Denkanstoß: Koordinatensystem

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Denkanstoß: Koordinatensystem

    Guten Tag,

    ich muss für ein Projekt ein Koordinatensystem, für eine grafische Darstellung, erstellen. Leider weiß ich nicht genau wie ich anfangen soll.
    Die Y-Achse ist in meinem Fall ein fester Wert zwischen 1 und 12, die X-Achse müsste sich dynmaisch sklaieren / verlängern, je nachdem wie viele Einträge vorhanden sind.

    Ich müsste die Y-Achse ja von oben nach unten zeichnen, da in Java ja 0,0 in der oberen linken Ecke ist und die X-Achse am Ende der Y-Achse anfangen lassen und nach rechts weiterlaufen lassen.
    Folgend noch mein momentaner Ansatz, von dem ich allerdings noch nicht so ganz überzeugt bin.

    Hätte jemand eine Idee oder einen kleinen Denkanstoß wie ich dies am bestens umsetzen kann?

    Gruß und schon einmal vielen Dank im Voraus.

    Quellcode

    1. import java.awt.*;
    2. public class GraphCanvas extends Canvas
    3. {
    4. private Image imageBuffer = null;
    5. private Graphics imageBufferGraphics;
    6. public GraphCanvas ()
    7. {
    8. setSize (600, 400);
    9. }
    10. private void createImageBuffer ()
    11. {
    12. imageBuffer = createImage (this.getWidth (),
    13. this.getHeight ());
    14. imageBufferGraphics = imageBuffer.getGraphics ();
    15. }
    16. public void paint (Graphics g)
    17. {
    18. createImageBuffer ();
    19. paintBufferedImage ();
    20. if (imageBuffer != null) {
    21. g.drawImage (imageBuffer, 0, 0, null);
    22. }
    23. }
    24. private void paintBufferedImage ()
    25. {
    26. drawVerticalScaledLine (50, 20, 547, 20, 21);
    27. drawHorizontalScaledLine (50, 293, 700, 20, 21, 15);
    28. }
    29. private void drawVerticalScaledLine (int x, int y, int size,
    30. int scaleSize, int distance)
    31. {
    32. imageBufferGraphics.drawLine (x, y, x, y + (size / 2));
    33. int j = 13;
    34. for (int i = 1; i < 13; i++) {
    35. j = j - 1;
    36. imageBufferGraphics.drawLine (x - (scaleSize / 2), y + (i * distance),
    37. x + (scaleSize / 2), y + (i * distance));
    38. // 1-2 an der Seite ausgeben
    39. imageBufferGraphics.drawString (String.valueOf (j), x - scaleSize,
    40. y + (i * distance));
    41. }
    42. }
    43. private void drawHorizontalScaledLine (int x, int y, int size,
    44. int scaleSize, int distance, int num)
    45. {
    46. imageBufferGraphics.drawLine (x, y, x + (size / 2), y);
    47. for (int i = 1; i < num; i++) {
    48. imageBufferGraphics.drawLine (x+ (i * distance), y - (scaleSize / 2),
    49. x + (i * distance), y + (scaleSize / 2));
    50. }
    51. }
    52. }
    Alles anzeigen