Blatt 7 - Programmierübung 3


Ich bezweifle, dass diese Software über X-Forwarding funktioniert. Du wirst das direkt am Rechner starten müssen.


Nope, geht Problemlos mit X-Forwarding, benutzt nur uralt OpenGL - keine Shader etc…
Geht sogar von einer linuxoiden VM aus auf faui0sr0 z.B…
Ich vermute eher, dass das an komischem Putty Gefrickel liegt. Benutz irgendwas, was echtes X-Forwarding kann.
Abgesehen von X-Forwarding sollte das auch auf jedem halbwegs brauchbarem Linux mit glm & SDL(-dev) & OpenGL(-dev) (Headern) kompilieren und laufen.


Hallo :slight_smile:
Was schlägst du denn dann stattdessen als Alternativen vor?


Ich sehe eine Antwort a la „Windows runter, Linux drauf!“ in naher Zukunft.


Über Xming hat es bei mir damals funktioniert.


Oder als salomonischer Vorschlag: Linux + Windows :wink:


Die einzelnen Koeffizienten hab ich schon berechnet, die Entscheidung, welchen davon ich wann zurueckgeb bereitet mir aber noch Probleme.
Ich weiss, dass meine Aufgabe2::isInside korrekt ist, da ich die Belegung die rho,tau,omega korrekt auf alpha,beta,gamma abbildet richtig geraten hab.
Die gilt natuerlich im Allgemeinen nicht. Geht es bei der Auswahl der Koeffiziente um die Position der uebergebenen Punkte im Raum, relativ zueinander?


Ich habe die allgemeine Formel, siehe Anhang, genommen.
Das Ergebnis sieht korrekt aus.

Attachment:
koeff.png: https://fsi.cs.fau.de/unb-attachments/post_122292/koeff.png


Hast Recht, isInside funktioniert unabhängig davon, welche der Koeffizienten man nimmt (rho, tau oder omega).


Gehört jetzt eigentlich der Rand (also eine baryzentrische Koordinate = 0) mit zum Inneren oder zum Äußeren?

Die allerdings eigentlich nur Rho berechnet? Sieht aber trotzdem korrekt aus.


>>hint<<


Auf dem Rand ist immernoch auf dem Dreieck, der Rand gehört ja zum Dreieck.

Was bereits genannt wurde, oder eine VM auf Windows.


mal ne ganz dumme frage:

ich habe die A1a mit ca 10 Zeilen Code gelöst (mit rekursion), und meine Kurve sieht auch schon sehr Bezier-mäßig aus. ich hab aber von anderen gehört dass sie da teilweise extrem viel code haben. gibt es irgendwie eine vorgabe dass wir keine rekursion machen dürfen? kann ich mir eigentlich nicht vorstellen, denn das ist ja eigentlich der sinn vom Casteljau :wink:


Gute Frage.
Foliensatz: Rekonstruktion kontinuierlicher Daten: Interpolation Multivariater Daten, Seite 17

Der Rand (1 Bary Koeff == 0) und die Eckpunkte (2 Bary Koeff == 0) gehören nach meinem Verständnis zum Objekt und zum nicht Objekt :smiley:
Stellt euch vor, ihr schneidet aus der Mitte eines Stück Papiers ein Dreieck aus, dann hat das Dreieck denselben Rand wie das Stück Papier, wo jetzt das Dreieck fehlt. Ich glaube, das ist dann Definitionssache, von wegen abgeschlossener Menge wo der Rand dazugehört, etc.

Soll euch aber nicht weiter stören. Für Punkte auf dem Rand kann eure Methode isInside entweder ‚true‘ oder ‚false‘ liefern, sofern das konsistent ist. (Also nicht für Rand A true und Rand b false)


Ich würde sagen zum Inneren.

Das Dreieck ist ja die konvexe Hülle der drei Punkte (= kleinste konvexe Menge, die alle Punkte enthält). Wenn man sich dann die Definition einer konvexen Menge ansieht, sieht man, dass die Koeffizienten a_i ∈ [0, 1] sein müssen (abgeschlossenes Intervall). (Außerdem muss die Summe über sie = 1 sein).
Damit bilden die baryzentrischen Koordinaten im Inneren und auch für den Rand eine Konvexkombination.


+1


Ich habe das wohl noch nicht ganz verstanden.
Bisher dachte ich, dass
· Alpha, Beta, Gamma ∈ [0, 1]
· Alpha + Beta + Gamma = 1
gelten muss.

Dann klappt das mit dem Testcase aber nicht, da dann kein einziger Punkt innerhalb wäre. (Sofern erste Bedingung erfüllt wäre, wäre die zweite Bedingung verletzt). :confused:


Genau so ist das :slight_smile:

Wieso sollte das so sein?
z.B. (alpha, beta, gamma) = (1/3, 1/3, 1/3) ist der Schwerpunkt des Dreiecks.


Fehler gefunden. Hatte mich bei Cramer vertippt m(
:smiley:


dürfen wir bei der 1b) bei midpointSubdivision davon ausgehen, dass BezierControlPoints genügend Punkte enthält? Oder sollen wir das asserten?