Grafische Objekte zeichnen

Daniel_1988

Neues Mitglied
Hallo liebe Community,
ich habe folgendes Problem:

Ich habe eine vorgebene Datei "FigureDrawerTester", die ich erweitern soll, so dass das Programm auch funktioniert.
Es sollen Punkte, Linien, Rechtecke, Kreise und Polylinien gezeichnet werden.

Mein Hauptproblem liegt bei den Polylinien --> weis da nicht wie man das in der "class Polyline" gut verarbeiten kann.

Punkte einlesen: mit 2 Koordianten.
Linie: 2 Punkte
Kreis: 1 Punkt + Radius
Rechteck: 2 Punkte
diese sind ja noch verständlich, jedoch die Polylinie ist etwas anders:
Polylinie: Polyline(Linie[]) ... einlesen durch Linien.
oder
Polylinie: Polyline(Point[]) ...oder einlesen durch einzelne Punkte.
wie schreib ich das nun vernünftig???


(Haben gerade erst die Oberflächenprogrammierung gelernt, daher noch null plan, obwohl ich schon in meinen skripten geschmökert habe)

VORGEBENE JAVA-DATEI:
Java:
public class FigureDrawerTester {
  public static void main(String[] args) {
    Window.open();

    Point[] points = new Point[] {
      new Point(640, 25),
      new Point(660, 45),
      new Point(650, 65),
      new Point(670, 85)
    };
    for (int i = 0; i < points.length; i++) {
      points[i].draw();
    }

    Line line = new Line(new Point(10, 10), new Point(650, 20));
    line.draw();
    
    Rectangle rectangle = new Rectangle(new Point(45, 225), 100, 100);
    rectangle.draw();
    
    Circle circle = new Circle(new Point(300, 300), 70);
    circle.draw();
    
    Polyline[] polyLines = new Polyline[6];
    polyLines[0] = createTriangle();
    polyLines[1] = createRectangle();
    polyLines[2] = createPentagon(300, 300);
    polyLines[3] = createStar(500, 300);
    polyLines[4] = createCross();
    polyLines[5] = createPlus();
    
    for (int i = 0; i < polyLines.length; i++) {
      polyLines[i].draw();
    }
  }
  
  private static Polyline createTriangle() {
    return new Polyline(
      new Point[] {
        new Point(120, 50),
        new Point(220, 150),
        new Point(20, 150)
      });
  }
  
  private static Polyline createRectangle() {
    return new Polyline(
      new Point[] {
        new Point(20, 200),
        new Point(170, 200), 
        new Point(170, 350), 
        new Point(20, 350) });
  }

  private static Point[] createPentagon0(int offsetX, int offsetY) {
    int spikes = 5;
    int angle = 360 / spikes;
    int radius = 100;
    Point[] points = new Point[spikes];
    for(int i=0;  i < spikes; i++) {
      Point p = new Point(
        offsetX + (int) (radius * Math.cos(Math.toRadians(360 - angle * i))),
        offsetY + (int) (radius * Math.sin(Math.toRadians(360 - angle * i))));
      points[i] = p;
    }
    return points;
  }
  
  private static Polyline createPentagon(int offsetX, int offsetY) {
    return new Polyline(createPentagon0(offsetX, offsetY));
  }

  private static Polyline createStar(int offsetX, int offsetY) {
    Point[] points = createPentagon0(offsetX, offsetY);
    return new Polyline(
      new Line[] {
        new Line(points[0], points[2]),
        new Line(points[1], points[3]),
        new Line(points[2], points[4]),
        new Line(points[3], points[0]),
        new Line(points[4], points[1])
      }
    );
  }
  
  private static Polyline createCross() {
    return new Polyline(
      new Line[] {
        new Line(new Point(250, 50), new Point(350, 150)),
        new Line(new Point(250, 150), new Point(350, 50))
      }
    );
  }
  
  private static Polyline createPlus() {
    return new Polyline(
      new Line[] {
        new Line(new Point(450, 100), new Point(550, 100)),
        new Line(new Point(500, 50), new Point(500, 150))
      }
    );
  }
}

Eigentlich muss ich ja da nicht wirklich viel dazu programmieren denke ich, da das meiste ja schon im Testprogramm steht.

Das habe ich mal geschrieben:

Java:
class Point{
	public int pointX;
	public int pointY;
	
	Point(int pointX, int pointY){
		this.pointX = pointX;
		this.pointY = pointY;
	}
}
class Line{
	public Point linePoint1;
	public Point linePoint2;
	
	Line(Point linePoint1, Point linePoint2){
		this.linePoint1 = linePoint1;
		this.linePoint2 = linePoint2;
	}
}
class Polyline{
	public Line[] linePolyline;
	public int countPolyline;
	
	Polyline(Line[] linePolyline, int countPolyline){
		this.linePolyline = linePolyline;
		this.countPolyline = countPolyline;
	}
}
class Rectangle{
	public Point pointRectangle;
	public int width;
	public int height;
	
	Rectangle(Point pointRectangle, int width, int height){
		this.pointRectangle = pointRectangle;
		this.width = width;
		this.height = height;
	}
}
class Circle{
	public Point circlePoint;
	public int radius;
	
	Circle(Point circlePoint, int radius){
		this.circlePoint = circlePoint;
		this.radius = radius;
	}
}

Ist das soweit korrekt?

Jetzt fehlt mir auch noch eine Methode zum zeichnen --> "draw"
Wie kann diese aussehen? Es muss ja immer etwas anderes gezeichnet werden, je nachdem was der anwender will?
Muss da für jede Art von Figur ne eigene draw Methode geschrieben werden??

Grüße Daniel
 

Daniel_1988

Neues Mitglied
Danke, da hab ich schon geschaut.

Zu meinem Programmtext bisher, passt das so?
Das mit der Polylinie, wie muss ich das korrekt schreiben, es funkt so einfach nicht!?
 

Sneek

Aktives Mitglied
Also, ich kann momentan zu deinem Problem nur soviel beitragen:

Du musst für jede Figur eine eigene .draw()-Methode erstellen, die implementierst du einfach in die entsprechenden Klassen. Wie die .draw() konkret aussehen muss, kann ich dir gerade nicht sagen.
 
Zuletzt bearbeitet:
Ähnliche Java Themen
  Titel Forum Antworten Datum
N Statistische Auswertung von Logfiles (Einlesen, auswerten und grafische Aufbereitung von logfiles) mit Java Allgemeine Java-Themen 9
M Java – Warum kann ich plötzlich bei Android Studio Grafische Benutzeroberflächen mit der Maus gestalten? Allgemeine Java-Themen 5
? Grafische Benutzeroerflächen und Spiele Programmirung Allgemeine Java-Themen 12
M interaktive grafische Oberfläche - wie mach ich das am Besten Allgemeine Java-Themen 4
S grafische Textausgabe außerhalb eines Frames Allgemeine Java-Themen 5
D Grafische Oberfläche Allgemeine Java-Themen 3
E einfache grafische Oberfläche wie in MS C#? Allgemeine Java-Themen 6
M Wie heißt denn dieses grafische Element ? Allgemeine Java-Themen 2
J Netbeans: wie auf grafische elemente zugreifen, andere Datei Allgemeine Java-Themen 2
S grafische Oberfläche-> auslagern innerer klassen Allgemeine Java-Themen 5
B Grafische Oberfläche - Welche Komponenten? Allgemeine Java-Themen 5
thE_29 Java Applikation ohne grafische Oberfläche Allgemeine Java-Themen 24
schegga_B javax.crypto - Cipher Objekte - Sevice Provider matching? Allgemeine Java-Themen 1
berserkerdq2 Weiß jemand wie ich im Scenebuilder das Fenster so darstellen kann, dass beim Vollbildmodus die Objekte so angezeigt werden? Allgemeine Java-Themen 1
A Einzelne Objekte und Unterobjekte einer ArrayList ausgeben Allgemeine Java-Themen 53
B Java Reflection Probleme beim wehcselseitigen Referenzieren zweier Klassen/Objekte Allgemeine Java-Themen 14
N einem Array Objekte hinzufügen die ihr Array position gespeichert haben Allgemeine Java-Themen 34
E Objekte in einen String packen und wieder laden Allgemeine Java-Themen 5
L Objekte in Set nicht gefunden Allgemeine Java-Themen 13
Avalon Data Transfer Objekte aus Datenbank erstellen Allgemeine Java-Themen 8
G Objekte mit Strings Aufrufen Allgemeine Java-Themen 8
H Objekte speichern und laden Allgemeine Java-Themen 10
H Objekte speichern und laden Allgemeine Java-Themen 1
MiMa Referenz auf Objekte und deren Inhalte Allgemeine Java-Themen 12
W Objekte reproduzieren Allgemeine Java-Themen 2
W Objekte per Reflexion instanziieren Allgemeine Java-Themen 7
W Unittest - Objekte simulieren Allgemeine Java-Themen 7
T OOP Objekte mit Erweiterung Initialisieren Allgemeine Java-Themen 6
O Erste Schritte Objekte als Datenelemente Allgemeine Java-Themen 14
J Equals Mock Objekte Allgemeine Java-Themen 5
J Mockito - Objekte miteinander vergleichen (equals) Allgemeine Java-Themen 6
N Bei Mouse Events nicht mehrere Objekte erstellen Allgemeine Java-Themen 13
J Zugriff auf erstellte Objekte einer Klasse von einer Klasse ausserhalb Allgemeine Java-Themen 3
J Java Objekte = null, Garbagecollector Allgemeine Java-Themen 12
F Listen - Mehrere Objekte Allgemeine Java-Themen 1
J Verständnis Frage zur Instanz, Objekte, Instanzierung, Referenz Allgemeine Java-Themen 14
F Objekte erzeugen Allgemeine Java-Themen 1
E Threads ThreadPoolExecutor remove mit callable Objekte Allgemeine Java-Themen 3
P mehrer Verschiedene Objekte in einer Klasse erstellen. Allgemeine Java-Themen 4
E OOP Objekte und Methoden Allgemeine Java-Themen 1
@SupressWarnings() Umgebungsvariable Objekte "gekoppelt" Allgemeine Java-Themen 6
S Algorithmus um Objekte auf einer Flaeche mit gleichem Abstand anzuordnen..? Allgemeine Java-Themen 20
C Objekte in Array List speichern? Allgemeine Java-Themen 1
OnDemand Objekte speichern Allgemeine Java-Themen 8
B Objekte anhand von Properties file Allgemeine Java-Themen 41
U Tiefe Objekte schreiben Allgemeine Java-Themen 1
R Abstrakte Basisklasse und instanzierte Objekte der abgeleiteten Klasse als Basisklasse übergeben Allgemeine Java-Themen 2
E 3D Objekte in 2D Bild finden Allgemeine Java-Themen 5
J Daten aus GUI auslesen und in Objekte umwandeln Allgemeine Java-Themen 6
F FileOutput/Input Objekte Allgemeine Java-Themen 6
OnDemand Objekte serialisieren Allgemeine Java-Themen 3
J unterschiedliche Objekte, selbe getter und setter Allgemeine Java-Themen 15
L Lib gesucht: Java-Objekte mit JSON Allgemeine Java-Themen 2
U Set erklären dass objekte gleich sind Allgemeine Java-Themen 12
E Best Practice Verdammt große Objekte Allgemeine Java-Themen 10
B Mehrere Objekte verschlüsselt serialisieren Allgemeine Java-Themen 6
G Liste anzahl der gleichen Objekte Allgemeine Java-Themen 6
N Objekte an eine andere Applikation übergeben Allgemeine Java-Themen 3
N 2 Objekte zu einer Gruppe zusammenfügen Allgemeine Java-Themen 7
M Instanzierte Objekte in XML Dokument speichern Allgemeine Java-Themen 3
B Verschiedene Objekte in Abhängigkeit eines Typs instanziieren. Allgemeine Java-Themen 17
K Input/Output Im Programm instanzierte Objekte Speichern und laden Allgemeine Java-Themen 3
S OOP Objekte als Return-Werte: Einen Klon zurückgeben oder Instanz auf das Feld? Allgemeine Java-Themen 10
H Objekte Serialisiert speichern Allgemeine Java-Themen 10
L MouseListener für viele Objekte erstellen Allgemeine Java-Themen 16
5 Objekte Sortieren lassen Allgemeine Java-Themen 7
N Objekte aus Array Inhalt erzeugen Allgemeine Java-Themen 8
L Input/Output Textdatei in Objekte überführen? Allgemeine Java-Themen 4
R Input/Output Objekte speichern ohne überschreiben Allgemeine Java-Themen 7
A Collections HashMap.containsKey findet keine immutablen Objekte Allgemeine Java-Themen 3
H Threads Thread stirbt aber Objekte in ihm leben weiter?! Allgemeine Java-Themen 9
M Java Objekte in XML mit JAXB Allgemeine Java-Themen 9
C Strings und JSON Objekte so klein wie möglich im Speicher ablegen Allgemeine Java-Themen 5
H COM-Objekte/ AktiveX Objekte Allgemeine Java-Themen 4
C Script für Website mit Objekte Ausblenden Allgemeine Java-Themen 3
M Txt einlesen & Objekte erzeugen Allgemeine Java-Themen 2
X Objekte aus TableModel serialisieren und deserialisieren Allgemeine Java-Themen 4
T ObjectInputStream - Arrayliste, die unbekannte Objekte enthält Allgemeine Java-Themen 9
B class dateien "einlesen" und objekte erzeugen Allgemeine Java-Themen 6
A Wie zur Laufzeit auf Objekte zugreifen Allgemeine Java-Themen 7
F Referenzen auf Objekte Allgemeine Java-Themen 5
H Eclipse und Objekte Allgemeine Java-Themen 6
S Objekte die Objekte enthalten: Keine Vererbung Allgemeine Java-Themen 4
E Objekte in einer Liste suchen. Allgemeine Java-Themen 4
I Über eine Liste iterieren und Objekte löschen. Wie löst man das sauber? Allgemeine Java-Themen 5
I Pattern zum Erweitern existierender Objekte Allgemeine Java-Themen 4
N Dynamische Objekte / DB Allgemeine Java-Themen 5
J Objekte binär speichern Allgemeine Java-Themen 10
TiME-SPLiNTER Unbekannte Anzahl serialisierter Objekte lesen Allgemeine Java-Themen 2
V Objekte in Kategorien einteilen. Allgemeine Java-Themen 6
M 3D Objekte mit einer Linie Verbinden Allgemeine Java-Themen 3
F Wie zur Laufzeit ganz neue Objekte erzeugen? Allgemeine Java-Themen 5
A Dummy-Objekte für Webgui erzeugen Allgemeine Java-Themen 12
W Objekte speichern mit JFileChooser Allgemeine Java-Themen 8
D befehl auf mehrere objekte anwenden Allgemeine Java-Themen 7
L Objekte in Liste packen Allgemeine Java-Themen 2
S XML in Objekte wandeln. Euer Rat? Allgemeine Java-Themen 12
G Objekte serialisieren Allgemeine Java-Themen 2
L Parameter-Objekte verändern oder nicht? Allgemeine Java-Themen 6
D Objekte nur unter bestimmten Voraussetzungen erzeugen Allgemeine Java-Themen 4

Ähnliche Java Themen

Neue Themen


Oben