View Full Version : [FRAGE] - Bsp. 2 - Komischer Stern!
Also ich schau jetzt mal meinen Code noch durch, vielleicht komm ich auf den Fehler. Ich kann ja nicht den ganzen Code posten, um zu sehen wo der Fehler liegt... args.
Vielleicht weiß jemand von euch durch den Screenshot, wo der Fehler sein könnte? :confused: *seufz*
Wenn ich's rausfinde, poste ich's hier.
Vielleicht weiß jemand von euch durch den Screenshot, wo der Fehler sein könnte? :confused: *seufz*
Also, nachdem beim Screenshot die Reihenfolge der Punkte eigentlich stimmt und insbesondere das Schneiden mit den Kanten links und rechts hinhaut, würde ich auf eine falsche Koordinatenberechnung in intersect() wetten.
Schau einmal, ob du beim switch(edge) { case BOTTOM: ... und case TOP: ... } wirklich alles richtig gemacht hast, meiner Meinung nach muss da der Fehler liegen.
Schau einmal, ob du beim switch(edge) { case BOTTOM: ... und case TOP: ... } wirklich alles richtig gemacht hast, meiner Meinung nach muss da der Fehler liegen.
zumal hier ja ein unterschied aus dem c code zu dem java-code resultiert, da lt. c code y nach oben zeigt und in unserem fall y nach unten. du kannst also fast die gesamte intersect-methode 1:1 übernehmen musst jedoch bottom und top vertauschen
hoffe, dass es dein problem löst
lg,
roman
Quote:
Originally Posted by J.Petso
Schau einmal, ob du beim switch(edge) { case BOTTOM: ... und case TOP: ... } wirklich alles richtig gemacht hast, meiner Meinung nach muss da der Fehler liegen.
zumal hier ja ein unterschied aus dem c code zu dem java-code resultiert, da lt. c code y nach oben zeigt und in unserem fall y nach unten. du kannst also fast die gesamte intersect-methode 1:1 übernehmen musst jedoch bottom und top vertauschen
bei mir funktioniert der Algorithmus, ohne Bottom und Top zu vertauschen. Versuche einfach mal die wMin und wMax variablen zu vertauschen in der Intersectmethode. Das Kreuz sollte dann auch funktionieren..
bei mir funktioniert der Algorithmus, ohne Bottom und Top zu vertauschen. Versuche einfach mal die wMin und wMax variablen zu vertauschen in der Intersectmethode. Das Kreuz sollte dann auch funktionieren..
das kommt dem vertauschen von top mit bottom ja gleich, wenn du dir die beiden anweisungen mal genauer ansiehst ;)
lg,
roman
Interessant, ok, ich werd mir das mal ansehen.
Danke für die Hilfe! :D
public static final int X = 0;
public static final int Y = 1;
public static final int Z = 2;wofür brauch ich diese drei obenstehenden, initialisierten variablen
ja, stimmt eigentlich schon... ;)
...aber irgenwie,naja ich habs vom Buch abgetippt, und es funktioniert trotzdem, ohne das ich was vertauscht hab.
ChrisChiu
22-10-2004, 16:27
public static final int X = 0;
public static final int Y = 1;
public static final int Z = 2;wofür brauch ich diese drei obenstehenden, initialisierten variablen
Damit du bei den Arrays, die nicht auf CG1Point basieren, sondern für die drei Koordinaten halt ein dreidimensionales Array anlegen (oder für 2 Koordinaten ein zweidimensionales, wie bei clipped), schöner auf die Einzelkoordinaten zugreifen kannst. Braucht man nicht, macht aber den Quellcode besser lesbar. Das brauchst du z.B. beim clipped Array:
Folgendes:
clipped[i][X] = ... irgendwas ...
clipped[i][Y] = ... irgendwas ...
ist jedenfalls besser zu lesen als:
clipped[i][0] = ... irgendwas ....
clipped[i][1] = ... irgendwas ....
Also dient es rein zur besseren Lesbarkeit.
Das sind übrigens keine Variablen, sondern Konstanten :)
public static final int X = 0;
public static final int Y = 1;
public static final int Z = 2;wofür brauch ich diese drei obenstehenden, initialisierten variablen
damit du zb bei clipped[i][X] bzw. clipped[i][Y] verständlicher zuweisen kannst
i gibt die laufvariable an und X bzw Y ob du nun die X-koordinate speicherst oder die Y-koordinate ;)
lg,
roman
vBulletin® v3.7.1, Copyright ©2000-2009, Jelsoft Enterprises Ltd.