Punkte werden falsch verbunden

hanfgaertner

Mitglied
Hallo! Ich habe ein Problem und zwar habe ich einen Quelltext aus dem Internet genommen, mit dem man durch Drücken der Maus Punkte zeichnen kann. Ich wollte nun, dass sich diese Punkte verbinden, also das sich P1 mit P2 und P2 mit P3 und so weiter verbindet. Ich habe nun das Problem, das bei der Ausgabe der Punkte immer ein Punkt mehr ausgegeben wird als vorhanden. Also zum Beispiel anstatt 3 Punkten werden 4 Ausgegeben. Auch ist die Verbindungslinie immer mit den linken oberen Rand verbunden.
Ich hoffe ihr versteht was ich meine und könnt mir helfen, achja: ich bin noch ein ziemlicher Anfänger.
Liebe Grüße,
hanfgaertner

PS:Hier noch der Quelltext
Java:
import java.awt.Graphics;
import java.awt.Color;
import java.awt.event.*;

 //Classe Punkte aus einem Frame implementiert MouseListener und MouseMotionListener
public class Punkte extends java.awt.Frame 
implements MouseListener, MouseMotionListener {
  
  /**
  *   Irgendne ID die das Programm haben wollte :D
  */
  private static final long serialVersionUID = 6765239455127826451L;;
  
  //Variable punkte und zaehler wird erzeugt.
  static int punkte[][] = new int[500][2];
  static int zaehler = 0;
  
  public Punkte() {
    //MouseListener,MouseMotionListener werden erzeugt
    //Frame bekommt den Titel "QuickHull"
    super("QuickHull");
    addMouseListener(this);
    addMouseMotionListener(this);
  }
  
  //Was passiert wenn man die Maus drückt
  public void mousePressed (MouseEvent me) {
    if (zaehler < 500) {
      //Koordinaten in der Variable punkte speichern, zaehler um 1 erhöhen, neu zeichnen
      punkte[zaehler][0] = me.getX();
      punkte[zaehler][1] = me.getY();
      zaehler++;
      repaint();
    }else{
      //Ansonsten Anzeigen das die Maximalpunktezahl erreicht ist.
      System.out.println(zaehler+" Punkte sind das Maximum!");
      
    }
  }
  
  public void mouseDragged(MouseEvent me) {
  }
  
  public void mouseMoved(MouseEvent me) {
  }
  
  public void mouseClicked(MouseEvent me) {
  }
  
  public void mouseEntered(MouseEvent me) {
  }
  
  public void mouseExited(MouseEvent me) {
  }
  
  public void mouseReleased(MouseEvent me) {
  }
  
  //Methode zum zeichnen der Punkte
  public void paint(Graphics bs) {
    if (zaehler <=500) {
      bs.setColor(Color.white);
      bs.fillRect(10,30,280,250);
      bs.setColor(Color.blue);
      for (int i = 0; i<zaehler; i++) {
        bs.fillOval(punkte[i][0]-5, punkte[i][1]-5,10,10);
      }
      bs.setColor(Color.red);
      bs.drawString(zaehler + " Punkte gesetzt", 20, 40);
    }
    //Zeichnen der Linie zwischen den Punkten
    if(zaehler>=2){
      
      int durchlauf=0;
      
      
      for (int i=0;i<=zaehler ;i++ ) {
        
        int x1=sucheX1(durchlauf);
        
        int y1=sucheY1(durchlauf);
        System.out.println("Punkt "+durchlauf+":("+x1+"/"+y1+")!");
        
        
        
        
        durchlauf++;
        int x2=sucheX1(durchlauf);
        int y2=sucheY1(durchlauf);
        System.out.println("Punkt "+durchlauf+":("+x2+"/"+y2+")!");
        
        
        
        bs.setColor(Color.green);
        bs.drawLine(x1,y1,x2,y2);
        
        
        
      }
      
    }
    
  }
  //Main Methode
  public static void main (String [] args) {
    Punkte proggi = new Punkte();
    WindowListener wl = new WindowAdapter () {
      public void windowClosing(WindowEvent we) {
        System.exit(0);
      }
    };
    proggi.addWindowListener(wl);
    proggi.setSize(300,300);
    proggi.setLocation(100,100);
    proggi.setVisible(true); 
  }
  
  
  
  
  //Methode um den Wert der Variable punkte auszulesen
  public static  int gibPunkte(int q , int w  ) {
    return(punkte[q][w]);
  }
  
  //Methode um die X-Koordinate eines Punktes auszulesen
  public int sucheX1(int i){
    int x1=0;
    
    
    x1 = Punkte.gibPunkte(i,0);
    
    
    return (x1);
  }
  //Methode um die Y-Koordinate eines Punktes auszulesen
  public int sucheY1(int i){
    int y1=0;
    
    
    y1 = Punkte.gibPunkte(i,1);
    
    
    return (y1);
  }
}
 
Zuletzt bearbeitet:

hanfgaertner

Mitglied
Ok, danke das löst schonmal die falsche Ausgabe der Punkte. Aber warum zeichnet der immer eine Linie zwischen dem "letzten" Punkt und dem linken oberen Rand?
 

BuddaKaeks

Bekanntes Mitglied
bei mir tut ers nicht mehr


das müsste aber daran liegen:

du immst den letzten eintrag in dem Array und verbindest ihn mit dem punkt, der einen eintrag später im array liegt.

Dieser ist aber noch 0|0, also obere linke Ecke :)
 

BuddaKaeks

Bekanntes Mitglied
nimm anstatt des Arrays eine ArrayList, dass dürfte dir auch den Ärger mit deinen zählr > 500 ersparen,

dan kannts du einfach for(int i = 0; i< list.size()-1;i++) schreiben anstatt von for(int i = 0; i <zähler-1;i++)
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
XWing Random Punkte erstellen mit der Random klasse Java Basics - Anfänger-Themen 15
K Klassen Klasse erstellen, die Punkte eines Koordinatensystems repräsentiert? Java Basics - Anfänger-Themen 3
B Markieren einzelner Punkte in JFreeChart Java Basics - Anfänger-Themen 1
L0MiN Erste Schritte Neue Punkte zu einer Map hinzufügen und dauerhaft speichern? Java Basics - Anfänger-Themen 4
M Was bedeuten die Drei Punkte in einem Methodenkopf? Java Basics - Anfänger-Themen 3
J Punkte im Java-Applet verbinden Java Basics - Anfänger-Themen 4
D Algorithmus für Punkte auf einem Kreis Java Basics - Anfänger-Themen 0
P Punkte anhand 3. Koordinate vergleichen Java Basics - Anfänger-Themen 3
M Double Punkte Zeichnen Java Basics - Anfänger-Themen 7
T mehrere Punkte zeichnen ohne löschung Java Basics - Anfänger-Themen 4
J Punkte hinzufügen Tabelle Java Basics - Anfänger-Themen 5
P Pythagoras Baum - Berechnung der Punkte Java Basics - Anfänger-Themen 9
O Punkte auf einem Kreis "wandern" lassen Java Basics - Anfänger-Themen 3
M Polygon Punkte im Uhrzeigersinn sortieren Java Basics - Anfänger-Themen 2
0 Auf Karte in Planquadrate Punkte zeichnen? Java Basics - Anfänger-Themen 2
B Bitte um Hilfe es geht um Array + Punkte wie Dreieck,Fläche etc. Java Basics - Anfänger-Themen 12
T Punkte nicht löschen Java Basics - Anfänger-Themen 14
K Punkte verschieben Java Basics - Anfänger-Themen 6
M Abstand 2er Punkte (Klassen) Java Basics - Anfänger-Themen 11
J punkte verschwinden beim neuzeichnen neuer punkte Java Basics - Anfänger-Themen 11
P Hilfe für JComboBox, bmp einbinden/bestimmte punkte auf bmp Java Basics - Anfänger-Themen 3
Z Punkte, Koordinanten, Geraden zeichnen lassen Java Basics - Anfänger-Themen 8
V String überprüfen, nur Punkte und Zahlen erlaubt Java Basics - Anfänger-Themen 7
P Anzahl der Punkte in einer IP Adresse zählen? Java Basics - Anfänger-Themen 20
B 2D Punkte erstellen und ihre Länge berechnen/Problem this. Java Basics - Anfänger-Themen 3
J Punkte Noten zuweisen Java Basics - Anfänger-Themen 6
G Kann man in einem Dokument alle Kommas in Punkte umwandeln? Java Basics - Anfänger-Themen 10
M Datumsausgabe als String ohne Punkte erzeugen! Java Basics - Anfänger-Themen 5
T Matrix - äußerste Punkte pro Zeile Java Basics - Anfänger-Themen 7
A Punkte automatisch verbinden? Java Basics - Anfänger-Themen 3
S nach Import von jars (PLC4x) in Eclipse kann nicht mehr compiliert werden Java Basics - Anfänger-Themen 9
I Zapier -> wie werden Objekte gespeichert? Java Basics - Anfänger-Themen 10
L Datum - Monat und Jahr werden falsch angezeigt Java Basics - Anfänger-Themen 4
N Ich kriege ganze zeit die Fehlermeldung "Inhalt der Zwischenablage kann nicht in die ausgewählten Elemente eingefügt werden" hat jemand eine Lösung? Java Basics - Anfänger-Themen 6
K Warum werden immer noch doppelte Zahlen ausgegeben ? Java Basics - Anfänger-Themen 13
O HashTable kann ohne Performance-Verlust in Multithreaded-Anwendungen eingesetzt werden. Java Basics - Anfänger-Themen 6
R Java kann nicht installiert werden Java Basics - Anfänger-Themen 8
P BeforeEach AfterEach werden nicht ausgeführt. Java / Selenium Java Basics - Anfänger-Themen 4
D Kleinste Zahl in Array finden die vorher noch errechnet werden müssen. Java Basics - Anfänger-Themen 4
L Gegebenes Array sortieren, indem zufällige Zahlenpaare aus Array ausgewählt werden Java Basics - Anfänger-Themen 14
I aus 2 random zahlen soll nur die ungerade summe der beiden genommen werden. Java Basics - Anfänger-Themen 13
I Greenscreen, funktioniert nicht zu 100%... nicht alle Pixel werden geändert Java Basics - Anfänger-Themen 1
R Audio kann nur zum Teil gestoppt werden Java Basics - Anfänger-Themen 1
berserkerdq2 sqllite in Java, wenn ich mache select count(*) ..., erhalte ich dann nur die gezählte Anzahl oder werden auch die Tabellen ausgegeben? Java Basics - Anfänger-Themen 2
L Hilfe! Liste mit Items werden ausgegeben aber nicht in zufälliger Reihenfolge Java Basics - Anfänger-Themen 6
H Erste Schritte Nach einer Zahl n soll n Mal der String untereinander ausgegeben werden Java Basics - Anfänger-Themen 3
sserio Wieso werden nicht alle Primzahlen bis 1000 in meine Liste gepackt ? Java Basics - Anfänger-Themen 8
docmas 2DArray Werte werden nur untereinander ausgegeben Java Basics - Anfänger-Themen 1
E Umlaute und Sonderzeichen werden nach der Build Project nicht richtig angezeigt Java Basics - Anfänger-Themen 2
M Bei nach oben scrollen soll Seite aktualisiert werden (Userscript mit Javascript) Java Basics - Anfänger-Themen 10
A Wenn eine Zahl durch 7 teilbar ist, soll statt der Zahl ein ‘*‘ angezeigt werden. java? Java Basics - Anfänger-Themen 47
C Ein Algorithmus soll schneller werden Java Basics - Anfänger-Themen 24
Q Prüfen ob Zahl als Summe von Potenzen dargestellt werden kann. Java Basics - Anfänger-Themen 20
K Erste Schritte Wie schnell ist LinkedHashMap im Vergleich zur ArrayList, wenn alle Entries durchlaufen werden? Java Basics - Anfänger-Themen 47
LiFunk Exception: es dürfen nur Nummern eingelesen werden Java Basics - Anfänger-Themen 6
U Hauptklasse kann nicht gefunden werden Java Basics - Anfänger-Themen 8
OZAN86 For Schleife von 1-50 die Zahlen werden durch ein Komma getrennt Java Basics - Anfänger-Themen 10
M Wie kann ich Werte die in einer While Schleife sind weiter genutzt werden? Java Basics - Anfänger-Themen 7
Hallolu Pong-Spiel: Schläger schneller werden lassen Java Basics - Anfänger-Themen 9
C java.sql Statement kann nicht geschlossen werden Java Basics - Anfänger-Themen 9
LetsSebi Dateien werden nicht in Zip gespeichert Java Basics - Anfänger-Themen 1
D Codeblöcke, die immer wieder im Programmverlauf benötigt werden Java Basics - Anfänger-Themen 5
J Array Elemente werden nicht gefunden! Java Basics - Anfänger-Themen 6
M Warum werden character, die Leerzeichen sind, nicht korrekt verarbeitet? Java Basics - Anfänger-Themen 2
C Array-Werte werden gemischt, ohne Logik Java Basics - Anfänger-Themen 2
P Variablen HttpResponse.getBody() wird automatisch org.json Object und kann nicht zu json.simple Object gecastet werden? Java Basics - Anfänger-Themen 7
F JMenuItem Kann nicht nach einem String benannt werden... Java Basics - Anfänger-Themen 11
L Methode implementieren, Parameter die übergeben werden sind final Java Basics - Anfänger-Themen 4
Zrebna Programm kann aus der Konsole nicht gestartet werden (in der IDE läuft es) Java Basics - Anfänger-Themen 2
D Zahlen werden falsch gekürzt :? Java Basics - Anfänger-Themen 27
T Javafx ListView kann nicht gefüllt werden. Java Basics - Anfänger-Themen 6
H Eclipse kann nicht gestartet werden .... Java Basics - Anfänger-Themen 15
R Warum werden hier nur die grün und orangen Linien ausgegeben und der Rest unten nicht? Java Basics - Anfänger-Themen 5
J Eckige Klammern werden nicht erkannt Java Basics - Anfänger-Themen 1
J Klammern werden fälschlicherweise eingelesen Java Basics - Anfänger-Themen 2
Elyt Bei Monopoly werden Felder übersprungen Java Basics - Anfänger-Themen 2
Kirby.exe Hauptklasse konnte nicht gefunden werden.... Java Basics - Anfänger-Themen 27
B Nach dem kompilieren werden Bilder nicht mehr gefunden Java Basics - Anfänger-Themen 10
L Muss eine HttpURLConnection geschlossen werden? Java Basics - Anfänger-Themen 2
B Warum werden meine System.out.println's übersprungen? Java Basics - Anfänger-Themen 9
D java main methode kann nicht kompiliert werden (Erstellen eines Objekts) Java Basics - Anfänger-Themen 6
S Vergleichen ob der Integer der benutzt eingeben werden soll überhaupt ein int ist Java Basics - Anfänger-Themen 1
B Warum können super() und this() nicht gemeinsam in einem Konstruktor verwendet werden? Java Basics - Anfänger-Themen 7
V Array, Symbol kann nicht gefunden werden Java Basics - Anfänger-Themen 2
S TableView Items werden nicht angezeigt (+Verständnisfragen) Java Basics - Anfänger-Themen 15
O Apache: Log-Settings werden nicht gezogen Java Basics - Anfänger-Themen 0
H LayoutRes, Nullable und SystemServices werden in LayoutInflater nicht importiert Java Basics - Anfänger-Themen 9
A Wie erkennt die JVM welche class verwendet werden muss? Java Basics - Anfänger-Themen 3
L Input/Output AudioInputStream kann nicht erstellt werden. Java Basics - Anfänger-Themen 3
E Die Hauptklasse konnte nicht gefunden werden. Java Basics - Anfänger-Themen 12
H Hauptklasse ... konnte nicht gefunden oder geladen werden Java Basics - Anfänger-Themen 8
I Projekt als .jar Datei speichern - Bilder werden nicht mehr angezeigt Java Basics - Anfänger-Themen 4
J Strings sind gleich werden aber ungleich ausgewertet Java Basics - Anfänger-Themen 2
A Reader wohin werden Daten gespeichert? Java Basics - Anfänger-Themen 7
S Hauptklasse konnte nicht gefunden werden Java Basics - Anfänger-Themen 0
A Aufruf von Konstruktor , obwohl 2 Parameter weggelassen werden Java Basics - Anfänger-Themen 7
A Aufruf von Konstruktor , obwohl 2 Parameter weggelassen werden Java Basics - Anfänger-Themen 0
C Matrix-Werte werden nicht wie erwartet ausgegeben Java Basics - Anfänger-Themen 7
A Harshad Zahlen sollen in einem Intervall ausgegeben werden Java Basics - Anfänger-Themen 8
M GUI Startbutton und Titel werden nicht angezeigt Java Basics - Anfänger-Themen 1

Ähnliche Java Themen

Neue Themen


Oben