Aufgabe 10 Lösung

http://pp.info.uni-karlsruhe.de/lehre/W ... rn/b05.pdf
Jazzman
Beiträge: 3
Registriert: Fr 26. Dez 2008, 00:13

Re: Aufgabe 10 Lösung

Beitrag von Jazzman »

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 !
Patric
Beiträge: 99
Registriert: Do 23. Okt 2008, 22:41

Re: Aufgabe 10 Lösung

Beitrag von Patric »

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 . :?: :?:
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.
peterlustig
Beiträge: 13
Registriert: So 9. Nov 2008, 16:27

Re: Aufgabe 10 Lösung

Beitrag von peterlustig »

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:
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;

	}
kann mir jemand helfen?
sockenjodler
Beiträge: 10
Registriert: So 9. Nov 2008, 20:46

Re: Aufgabe 10 Lösung

Beitrag von sockenjodler »

@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...
Animus ex Machina
Beiträge: 2
Registriert: Do 11. Dez 2008, 00:47

Re: Aufgabe 10 Lösung

Beitrag von Animus ex Machina »

Hey peterlustig

Weiss nicht ob das dir noch hilft (so um viertel nach elf :P ) 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 :)
peterlustig
Beiträge: 13
Registriert: So 9. Nov 2008, 16:27

Re: Aufgabe 10 Lösung

Beitrag von peterlustig »

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...
fred
Beiträge: 4
Registriert: Mi 29. Okt 2008, 12:58

Re: Aufgabe 10 Lösung

Beitrag von fred »

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
Benutzeravatar
salami
Beiträge: 179
Registriert: Mi 5. Nov 2008, 22:41
Wohnort: Karlsruhe

Re: Aufgabe 10 Lösung

Beitrag von salami »

fred hat geschrieben:{ (4.0, 1.0), (5.0, 3.0), (9.0, 3.0), (6.0, 2.0) } <---
Vielleicht hast du aus Versehen einen zusätzlichen Punkt eingefügt, der gar nicht da sein sollte. (oder ich habe einen vergessen ;))
Thomas
Administrator
Beiträge: 383
Registriert: Do 23. Okt 2008, 20:16
Wohnort: Karlsruhe
Kontaktdaten:

Re: Aufgabe 10 Lösung

Beitrag von Thomas »

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?
Animus ex Machina
Beiträge: 2
Registriert: Do 11. Dez 2008, 00:47

Re: Aufgabe 10 Lösung

Beitrag von Animus ex Machina »

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 :crazy:
Antworten

Zurück zu „Blatt 5 - Abgabe 23.01.09“