Javacode erklären: Mittelpunkt bestimmen

Hakan

Mitglied
Guten Tag,
ich habe leider ein Verständnisproblem und zwar, wie ihr hier sehen könnt, habe ich eine Passage aus einem javacode-beispiel reingestellt. Mein Problem ist es, dass ich die Zeilen für die Bestimmung des Mittelpunktes nicht so richtig verstehe. Meine Bitte wäre, ob ihr mir die Zeilen kommentieren bzw. erklären könntet? Danke im voraus
Java:
public boolean gefulltekreistest(int i, byte[]pixels,int w)
        {
                double maxl=1;
                double letzte_maxl=0;
                int test=0;
                Polygon poly = (Polygon) this.polyvec.elementAt(i);
                Point p1=new Point(poly.xpoints[1],poly.ypoints[1]);
                Point p2=new Point(poly.xpoints[1],poly.ypoints[1]);
                Point ptmp=new Point(poly.xpoints[1],poly.ypoints[1]);
                while (letzte_maxl<=maxl&&test<3)
                {
                        double lang=0;
                        for(int j=0; j<poly.npoints; j++)
                        {

                                p2.setLocation(poly.xpoints[j], poly.ypoints[j]);
                                lang=p1.distance(p2);
                                if(lang>maxl)
                                {
                                        ptmp.setLocation(p2);
                                        maxl=lang;
                                }
                        }
                        p1.setLocation(ptmp);
                        if(letzte_maxl==maxl)
                        {
                                test++;
                        }else
                        {
                                letzte_maxl=maxl;
                                test=0;}
                }
                for(int j=0; j<poly.npoints; j++)
                {
                        p2.setLocation(poly.xpoints[j], poly.ypoints[j]);
                        if(letzte_maxl==p1.distance(p2))
                                {
                                ptmp.setLocation((p1.x+p2.x)/2,(p1.y+p2.y)/2);
                                break;
                                };
                }
                double mittlelang=0;
                for(int j=0; j<poly.npoints; j++)
                {
                        p2.setLocation(poly.xpoints[j], poly.ypoints[j]);
                        mittlelang+=ptmp.distance(p2);
                }
                mittlelang=mittlelang/poly.npoints;
                if(mittlelang*2/letzte_maxl<0.85||!poly.contains(ptmp))
                {
                        for(int j=0; j<poly.npoints; j++)
                        {
                                pixels[poly.ypoints[j]*w+poly.xpoints[j]]=(byte) 0;
                        }
                        return false;
                }
                anzahlkreis++;
                IJ.log("Gefunden "+anzahlkreis+". gefuellter Kreis");
                IJ.log("Mittel Punkt: x = "+ptmp.x+" , y = "+ ptmp.y);
                pixels[ptmp.y*w+ptmp.x]=(byte) 255;
                return true;
        }
 
Zuletzt bearbeitet von einem Moderator:

Landei

Top Contributor
Der Code erscheint mir umständlich und schlecht zu verstehen - was genau soll er tun? Und wie ist hier "Mittelpunkt eines Polygons" definiert? Es sieht so aus, als würde irgendwie der Punkt gesucht, der am weitesten von allen Polygonpunkten entfernt ist.
 

Hakan

Mitglied
genau das ist das problem. ist schwer verständlich. :bahnhof:
mich würde gerne sehr interessieren was im unteren code zeile für zeile passiert.
Java:
 for(int j=0; j<poly.npoints; j++)
                {
                        p2.setLocation(poly.xpoints[j], poly.ypoints[j]);
                        mittlelang+=ptmp.distance(p2);
                }
                mittlelang=mittlelang/poly.npoints;
                if(mittlelang*2/letzte_maxl<0.85||!poly.contains(ptmp))
                {
                        for(int j=0; j<poly.npoints; j++)
                        {
                                pixels[poly.ypoints[j]*w+poly.xpoints[j]]=(byte) 0;
                        }
                        return false;
                }
 

Marco13

Top Contributor
[c]for(int j=0; j<poly.npoints; j++)[/c]

Für j werden im Nachfolgenden die Werte 0 bis poly.npoints-1 eingesetzt

[c] p2.setLocation(poly.xpoints[j], poly.ypoints[j]);[/c]

Auf dem Objekt 'p2' wird die Methode "setLocation" aufgerufen, und es werden ihr die Werte der Arrays poly.xpoints und poly.ypoints, jeweils an der Stelle 'j' übergeben.

...

Zu low-level? Dann vielleicht so:
Der Code rechnet irgendwas rum, was sich irgendjemand ausgedacht hat.

Zu high-level? Dann steht dir (oder demjenigen, der deine Frage angemessen beantworten will, sofern sich jemand dazu bereit erklärt) viel Arbeit bevor...
 
G

gman

Gast
Hi,

der Code ist aber auch wirklich schrecklich. Am besten finde ich noch das er IMMER "true" zurück gibt. Das dürfte besonders
den Freunden der funktionalen Programmiersprachen sauer aufstoßen (Hallo Landei ;) ), da der Code somit voll von
Seiteneffekten ist.

Aber es hilft vielleicht schon ein wenig wenn man mal die Refactoring-Mechanismen seiner Lieblings-IDE anwirft und den
Variablen sprechendere Namen gibt. Aber das Hauptproblem der Methode ist, das sie einfach zu viel auf einmal macht.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
O Jar in Javacode Java Basics - Anfänger-Themen 2
P Umwandlung in Javacode Java Basics - Anfänger-Themen 10
D javacode durch Html ausfuehren Java Basics - Anfänger-Themen 13
D Javacode direkt in Betriebsystemabhängiges binary umwandeln Java Basics - Anfänger-Themen 5
M Aus Javacode eine Jar.Datei?? Java Basics - Anfänger-Themen 2
J Von Pseudocode zu JavaCode Java Basics - Anfänger-Themen 7
G UML --> JavaCode Java Basics - Anfänger-Themen 4
N Javacode starten Java Basics - Anfänger-Themen 13
T Kann mir jemand wörtlich erklären, was in dem Code genau passiert? Java Basics - Anfänger-Themen 1
W Java-Code erklären Java Basics - Anfänger-Themen 6
F Kann mir jemand kurz dieses Programm erklären? Java Basics - Anfänger-Themen 22
R Pseudocode erklären Java Basics - Anfänger-Themen 6
dieter000 Kurze Frage kann mir ejmand kurz diesen Code erklären, bzw wie man die zeilen erklärt und so Java Basics - Anfänger-Themen 1
M Könnte mir jemand diese Aufgabe erklären? Java Basics - Anfänger-Themen 2
M Kann mir jemand die Logik erklären? Java Basics - Anfänger-Themen 1
M Könnte mir jemand diese Aufgabe erklären? Java Basics - Anfänger-Themen 9
B Modulo-Operator anhand eines Beispieles erklären Java Basics - Anfänger-Themen 7
marcooooo Code erklären Java Basics - Anfänger-Themen 28
marcooooo Code erklären Java Basics - Anfänger-Themen 4
marcooooo Kann mir jemand das Beispiel kurz erklären so ungefähr:/ Java Basics - Anfänger-Themen 7
Bluedaishi Hilfe beim erklären dieser Methode Java Basics - Anfänger-Themen 5
A Kann mir Jemand erklären wie ich das iteriere? Java Basics - Anfänger-Themen 4
B Klassendiagramm erklären Java Basics - Anfänger-Themen 3
T Java Code erklären Java Basics - Anfänger-Themen 7
L Methode erklären Java Basics - Anfänger-Themen 4
L Methode erklären Java Basics - Anfänger-Themen 2
J String Problem kann das einer erklären Java Basics - Anfänger-Themen 13
A Kann mir jemand dieses Programm erklären? Java Basics - Anfänger-Themen 1
S Programm verständlich erklären Java Basics - Anfänger-Themen 4
N Hilfe, Code erklären Java Basics - Anfänger-Themen 7
B Kann mir jemand diese Bedingung erklären Java Basics - Anfänger-Themen 5
B Kann mir jemand erklären, warum hier dreimal was ausgegeben wird und nicht nur zweimal? Java Basics - Anfänger-Themen 16
B Wie würdet ihr diese Methode erklären? Java Basics - Anfänger-Themen 2
T Java Code erklären Java Basics - Anfänger-Themen 5
J TabelView - Kann mir jemand die Sequenz genau erklären ? Java Basics - Anfänger-Themen 2
D Einlesen funktioniert an einer Stelle nicht und ich kann mir nicht erklären warum Java Basics - Anfänger-Themen 6
M ImageObserver auf Deutsch erklären Java Basics - Anfänger-Themen 3
X Quelltext einen Tic Tac Toe Spiels erklären Java Basics - Anfänger-Themen 4
F Bitte mal Zusammenhänge der Klassen erklären Java Basics - Anfänger-Themen 8
J Kann mir bitte mal jemand diese Codes erklären? Java Basics - Anfänger-Themen 19
O Rundungsfehler bitte erklären! Java Basics - Anfänger-Themen 4
R kann mir jemand erklären was hier gemacht wurde? Java Basics - Anfänger-Themen 10
X Array Ausgabe bei Verwendung von 2 Schleifen erklären Java Basics - Anfänger-Themen 8
C Input/Output Codezeile erklären Java Basics - Anfänger-Themen 5
D Kann mir vielleicht jemand die reflexive Assoziation erklären? Java Basics - Anfänger-Themen 2
S For-Schleifen erklären Java Basics - Anfänger-Themen 5
S catch Exception erklären Java Basics - Anfänger-Themen 2
V Wer kann diesen Code leicht erklären Java Basics - Anfänger-Themen 8
B Code erklären Java Basics - Anfänger-Themen 2
N Wer kann diese Zeile erklären? Java Basics - Anfänger-Themen 9
D Methode erklären Java Basics - Anfänger-Themen 4
D code erklären bitte ! Java Basics - Anfänger-Themen 15
Rudolf Verstehe das Ergebnis nicht - bitte erklären Java Basics - Anfänger-Themen 7
M Kann mir bitte jemand "java.util.ArrayList" erklären? Java Basics - Anfänger-Themen 5
A Am Buch lesen, nun brauch ich eure Hilfe um mir super() zu erklären Java Basics - Anfänger-Themen 4
G Programm erklären -.- Java Basics - Anfänger-Themen 2
K Wer kann mir java.util.Hastable erklären. Java Basics - Anfänger-Themen 3
G Kann mir jemand das erklären? Java Basics - Anfänger-Themen 11
B Kann mir einer die Import Klassen erklären? Java Basics - Anfänger-Themen 8
I Einlesen von Dateien- wer kann mir den Code erklären ? Java Basics - Anfänger-Themen 4
S sql Klassen erklären Java Basics - Anfänger-Themen 3
P Schreibweise erklären- neu für mich Java Basics - Anfänger-Themen 3
M Kann mir jemand erklären, wie "static" funktionier Java Basics - Anfänger-Themen 2
G eine zeile code erklären Java Basics - Anfänger-Themen 3
R Seiteneffekt erklären Java Basics - Anfänger-Themen 2
W Methode erklären?! Java Basics - Anfänger-Themen 4
R Mittelpunkt von Bounding Box herausfinden Java Basics - Anfänger-Themen 3
K Wie kann ich ein Mittelpunkt eines Kreises finden ? Java Basics - Anfänger-Themen 6

Ähnliche Java Themen

Neue Themen


Oben