Aufgabe 10 Lösung
Re: Aufgabe 10 Lösung
Tut mir leid ich hätte für diesen Beitrag ein neues Thema erstellen müssen ! es handelt sich hierbei um ein Verständnisproblem der Aufgabenstellung ! ich möchte keine Lösung der Aufgabe sondern nur wissen ob ich die Aufgabe richtig verstanden habe !
Re: Aufgabe 10 Lösung
Du darfst den Punkt nur hinzufügen wenn es auch wircklich ein rechts drehendes Triplle ist. wenn es keins ist entfernst du den letzten Punkt von der Liste und startest die ganze prozedure nochmal von vorne mit dem selben Punkt, und das ganze solange bis das maln rechtsdrehendes Tripelle ist oder wenn kein bzw nur noch ein Punkt in der Liste ist einfach hinzufügen.Jazzman hat geschrieben:Kann mir mal einer erklären ? was die in Aufgabe 10b (a) (b) verlangen ? Soll man das ganze in einer Methode umsetzen ? abgesehen von der Hilfsmethode ! (a) Entfernen Sie so lange den letzten Punkt der Hülle,bis nur noch ein Punkt enthalten ist oder die letzten beiden Punkte der Hülle zusammen mit dem neuen Punkt ein rechtsdrehendes Tripel bilden.
habe ich das richtig verstanden ? Ich habe eine Liste mit Punkten , dann schaue ich ob mein übergebener Punkt an die Methode mit den letzten 2 beiden Punkten ein Tripel bildet ? wenn "Ja" entferne den letzen punkt nicht und füge den übergebenen punkt an die letzte stelle der Liste. Wenn "Nein" entferne den letzten punkt der liste und füge den übergebenen punkt an die letzte stelle der liste .
-
- Beiträge: 13
- Registriert: So 9. Nov 2008, 16:27
Re: Aufgabe 10 Lösung
Hallo, kann mir jemand helfen? ich bekomme keine richtigen ergebnisse (bei manchen testfällen stimmen die ergebnissezwar, aber nicht bei allen).
ich denke es liegt an der methode zum hinzufügen von punkten. Da muss irgendein denkfehler drin sein. aber ich finde ihn nicht. hier mal meine methode:
kann mir jemand helfen?
ich denke es liegt an der methode zum hinzufügen von punkten. Da muss irgendein denkfehler drin sein. aber ich finde ihn nicht. hier mal meine methode:
PRIME_BBCODE_SPOILER_SHOW PRIME_BBCODE_SPOILER: auf Anzeigen klicken
Code: Alles auswählen
void Hinzufuegen(Point punkt) {
boolean abbruch = false;
while (zaehler > 1 && !abbruch) {
if (!IstRechtsdrehend(punkte[zaehler-2], punkte[zaehler-1], punkt)) {
// punkt entfernen
zaehler--;
} else {
abbruch = true;
}
}
// neuen punkt einfügen
zaehler++;
punkte[zaehler-1] = punkt;
}
-
- Beiträge: 10
- Registriert: So 9. Nov 2008, 20:46
Re: Aufgabe 10 Lösung
@peterlustig
Also an deiner addPoint Methode liegts nicht. Hab sie gerade bei mir ausprobiert und kunktioniert wunderbar....
Was gibt er dir denn für Fehler aus?
Du kannst ja mal den Debugger laufen lassen und dir die einzelnen Variablen anschaun...
Also an deiner addPoint Methode liegts nicht. Hab sie gerade bei mir ausprobiert und kunktioniert wunderbar....
Was gibt er dir denn für Fehler aus?
Du kannst ja mal den Debugger laufen lassen und dir die einzelnen Variablen anschaun...
-
- Beiträge: 2
- Registriert: Do 11. Dez 2008, 00:47
Re: Aufgabe 10 Lösung
Hey peterlustig
Weiss nicht ob das dir noch hilft (so um viertel nach elf ) aber ich hatte ein ähnliches Prolem und hab es gelöst, in dem ich einfach zaehler-1 und zaehler-2 vertauscht hatte.
Das war dann so in etwa (!IstRechtsdrehend(punkte[zaehler-1], punkte[zaehler-2], punkt)
Hoffe das hilft
Weiss nicht ob das dir noch hilft (so um viertel nach elf ) aber ich hatte ein ähnliches Prolem und hab es gelöst, in dem ich einfach zaehler-1 und zaehler-2 vertauscht hatte.
Das war dann so in etwa (!IstRechtsdrehend(punkte[zaehler-1], punkte[zaehler-2], punkt)
Hoffe das hilft
-
- Beiträge: 13
- Registriert: So 9. Nov 2008, 16:27
Re: Aufgabe 10 Lösung
Ja natürlich, auch zu später stunde bin ich für jeden hinweis dankbar
es hat leider nichts geholfen zaehler-2 und zaehler-1 vertauschen.
Meinen anderen Fehler hab ich gefeunden: beim erzeugen von einem ConvexHull-objekt wurden nur so viele punkte angegeben wie das polygon enthält. aber der erste punkt wird ja auch noch nach dem letzten eingefügt. also gabs ab und zu arrayOutOfBounds.
Aber leider löst das noch immer nicht mein problem...
es hat leider nichts geholfen zaehler-2 und zaehler-1 vertauschen.
Meinen anderen Fehler hab ich gefeunden: beim erzeugen von einem ConvexHull-objekt wurden nur so viele punkte angegeben wie das polygon enthält. aber der erste punkt wird ja auch noch nach dem letzten eingefügt. also gabs ab und zu arrayOutOfBounds.
Aber leider löst das noch immer nicht mein problem...
Re: Aufgabe 10 Lösung
Ich habe leider nur fast das selbe Ergebnis wie oben. Ich kann mir nicht erklären, warum meine konvexe Hülle in Fall 2 den Punkt (6, 2) über hat.
Hat noch jemand den Punkt zuviel? Oder hat sich villeicht jemand verguckt?
{ (0.0, 0.0), (0.0, 1.0), (1.0, 1.0), (1.0, 0.0) }
{ (4.0, 1.0), (5.0, 3.0), (9.0, 3.0), (6.0, 2.0) } <---
{ (-5.0, -8.0), (-5.0, -4.0), (0.0, 10.0), (5.0, 10.0), (6.0, -7.0) }
{ (4.0, 5.0), (6.0, 12.0), (10.0, 14.0), (10.0, 5.0) }
{ (20.0, 5.0), (23.0, 11.0), (24.0, 9.0), (25.0, 6.0), (23.0, 5.0) }
Danke,
Gruß, Fred
Hat noch jemand den Punkt zuviel? Oder hat sich villeicht jemand verguckt?
{ (0.0, 0.0), (0.0, 1.0), (1.0, 1.0), (1.0, 0.0) }
{ (4.0, 1.0), (5.0, 3.0), (9.0, 3.0), (6.0, 2.0) } <---
{ (-5.0, -8.0), (-5.0, -4.0), (0.0, 10.0), (5.0, 10.0), (6.0, -7.0) }
{ (4.0, 5.0), (6.0, 12.0), (10.0, 14.0), (10.0, 5.0) }
{ (20.0, 5.0), (23.0, 11.0), (24.0, 9.0), (25.0, 6.0), (23.0, 5.0) }
Danke,
Gruß, Fred
Re: Aufgabe 10 Lösung
Vielleicht hast du aus Versehen einen zusätzlichen Punkt eingefügt, der gar nicht da sein sollte. (oder ich habe einen vergessen )fred hat geschrieben:{ (4.0, 1.0), (5.0, 3.0), (9.0, 3.0), (6.0, 2.0) } <---
-
- Administrator
- Beiträge: 383
- Registriert: Do 23. Okt 2008, 20:16
- Wohnort: Karlsruhe
- Kontaktdaten:
Re: Aufgabe 10 Lösung
hab mal noch ne ganz andere frage und zwar zum konstruktor von ConvexHull. initialisiert ihr die hülle einfach mit nem beliebigen Integer-wert oder macht ihr das array so lang wie das polygon selbst, was eigentlich von vorteil wäre, da man dann ja einfach immer punkte hinzufügen kann. ich habs momentan nämlich noch so dass ich von ner beliebigen zahl ausgehe und dann immer wenn ich nen punkt hinzufüge das array quasi neu erzeuge und eben der anzahl der punkte anpasse. müsste aba ja deutlich einfacher gehen oda?
-
- Beiträge: 2
- Registriert: Do 11. Dez 2008, 00:47
Re: Aufgabe 10 Lösung
Wow da sind ja doch so einige noch da... ich glaub da werdens weniger morgen in LA
Also das mit dem Konstruktor hab ich so verstanden, dass der als parameter einen Integer bekommt, der die grösse des Arrays
bestimmt. Sinnigerweise sollte man dann beim erstellen des Objekts vom typ convexhull die länge des polynom-punkte-arrays übergeben.
....
könnt ich mir zumindest vorstellen
Das mit den punkten hatt ich auch mal... bei mir lags daran, dass ich dieses rechtskirchene dingsigedrehe ungünstig implementiert hatte..
naja so viel dazu
Also das mit dem Konstruktor hab ich so verstanden, dass der als parameter einen Integer bekommt, der die grösse des Arrays
bestimmt. Sinnigerweise sollte man dann beim erstellen des Objekts vom typ convexhull die länge des polynom-punkte-arrays übergeben.
....
könnt ich mir zumindest vorstellen
Das mit den punkten hatt ich auch mal... bei mir lags daran, dass ich dieses rechtskirchene dingsigedrehe ungünstig implementiert hatte..
naja so viel dazu