cg2_Nurbs2.pdf Folie 12

Benutzeravatar
TuxedoMask2002
Mausschubser
Mausschubser
Beiträge: 67
Registriert: 24. Feb 2005 15:16
Wohnort: Frohnhofen
Kontaktdaten:

cg2_Nurbs2.pdf Folie 12

Beitrag von TuxedoMask2002 »

Hallo,
kann mir bitte jemand den letzten Schritt auf der Folie erklären, also wie ich
\(N_{3,2}\)
berechne?
Mein erster Summand hängt ja von \(N_{3,1}\) ab, was ja 0 ist, okay. Aber mein zweiter hängt nach der Rekursionsformel von \(N_{4,1}\) ab und der Bruch davor ergibt bei mir 2 (i=3, p=2). Aber \(N_{4,1}\) kommt ja auf der ganzen Folie nicht vor. Was mache ich falsch?

Danke
Michael
Der Neodarwinismus hat an die Stelle eines göttlichen Schöpfers lediglich den Gott Zufall gesetzt, der ebenso allmächtig, allwissend und allgegenwärtig ist.
F. Schmidt, BIOLOGIE HEUTE August 1989

Tiger80
Mausschubser
Mausschubser
Beiträge: 54
Registriert: 31. Dez 2004 18:12
Wohnort: darmstadt
Kontaktdaten:

Re: cg2_Nurbs2.pdf Folie 12

Beitrag von Tiger80 »

\(N_{4,1} = 0\) weil \(N_{4,0}= 0\) und \(N_{5,0} = 0\) sind. Daher haben sie das gar nicht mal auf den Folien erwähnt. Hoffe ich habe nichts falsches da geschrieben.

Gruss

Benutzeravatar
TuxedoMask2002
Mausschubser
Mausschubser
Beiträge: 67
Registriert: 24. Feb 2005 15:16
Wohnort: Frohnhofen
Kontaktdaten:

Re: cg2_Nurbs2.pdf Folie 12

Beitrag von TuxedoMask2002 »

Ja okay, wenn das so wäre dann ist es okay. Weil halt auch explizit hingeschrieben wurde dass N_31 null ist dachte ich, dass auf der Folie alles stünde was man so braucht :)
Danke dir.
Der Neodarwinismus hat an die Stelle eines göttlichen Schöpfers lediglich den Gott Zufall gesetzt, der ebenso allmächtig, allwissend und allgegenwärtig ist.
F. Schmidt, BIOLOGIE HEUTE August 1989

Philip
Mausschubser
Mausschubser
Beiträge: 48
Registriert: 24. Okt 2004 16:25

Re: cg2_Nurbs2.pdf Folie 12

Beitrag von Philip »

Da die Folien ja so gut wie gar keine Erklärung liefern habe ich mir jetzt mal folgendes Schema zusammengereimt:

Von der gegebenen Kurve
\(C^w(u) = \sum_{i=0}^n N_{i,p}(u)P_i^w\)
bestimme ich den Grad p, rechne die Summe aus und erhalte die darin benötigten \(N_{i,p}\), die ich dann über das Rekursionsschema ausrechnen kann und somit mir meinen Wert an der Stelle u berechnen kann. Sollte soweit zumindest funktionieren.

Jetzt habe ich noch 2 Fragen dazu:
- Das n in der Summe gibt den Index des höchsten Kontrollpunkts an oder die Anzahl der Kontrollpunkte?
- Ist das beschriebene Schema in der Form praktikabel oder gibt es für den Algorithmus (auf dem Papier) eine bessere/elegantere Lösung?

jno
BASIC-Programmierer
BASIC-Programmierer
Beiträge: 144
Registriert: 18. Mai 2007 09:41

Re: cg2_Nurbs2.pdf Folie 12

Beitrag von jno »

Wo soll ich anfangen....
Erst noch mal grundsätzlich zum genauen Unterschied zwischen B-Splines und Nurbs: Dass Nurbs rationale B-Splines sind, bei denen einzelne Punkte gewichtet werden können, ist mir klar. Aber nochmal zum Knotenvektor: Ist es richtig, dass bei einem normalen B-Spline, die inneren Knoten immer den Abstand 1 haben? Das wären dann ja quasi einfach mehrere Bezierkurven aneinander gehangen, die sind ja immer genau auf einem Intervall der Länge 1 parametrisiert. Und stimmt es, dass bei den NURBS die inneren Knoten einfach beliebig aufsteigend gewählt werden können? Welchen Einfluss hat diese Wahl dann überhaupt?
Dann noch mal zur richtigen Formel für den de-Boor Algorithmus: Stimmt die Formel auf Folie 17 in cg2_para-Splines? Irgendwie hat in dem Foliensatz einer gepfuscht glaub ich, Folie 11 ist ja auch falsch... Könnte im übrigen auch mal korrigiert werden, wenn jemand einen Fehler feststellt, finde ich. Auf jeden Fall wird in der Formel behauptet, dass das \(\alpha\), was als Faktor vor den de-Boor-Punkten verwendet
wird bei Grad r, \(\frac{t-t_{i+r}}{t_{i+n+r}-t_{i+r}}\) sei. Keine Ahnung, was hier n sein soll. Nach der Notation vom Knotenvektor oben müsste es eigentlich genau das gleiche wie r sein...
Oder ist vielleicht in Wirklichkeit n der richtige Grad und r die Rekursionstiefe? Ich bin verwirrt...

thomas_kalbe
Nerd
Nerd
Beiträge: 570
Registriert: 10. Jun 2006 14:58

Re: cg2_Nurbs2.pdf Folie 12

Beitrag von thomas_kalbe »

nun gut: bei uniformen Splines haben die Knoten den gleichen Abstand -- der auch von 1 verschieden sein kann, solange uniform!
Ja klar, Splines sind im Prinzip Bezierkurven, die aber stetig anschliessen (C^1, C^2, ... - stetig differenzierbar).
Eine Bezierkurve kann aber auch beliebig parametrisiert werden, nicht nur in [0,1]. In der VL wurden aber soweit nur in [0,1] param.
Kurven behandelt.

Die Folie 17 stimmt soweit eigentlich.
Im Exponenten N_i^n steht der Grad des Basissplines, auf Folie 17 ist n also der Grad.
Dann startet die Rekursion, d_i^0 werden auf d_i gesetzt, dann weiter wie im deCasteljau-Algorithmus (vom Prinzip her ähnliches Vorgehen).

Ok, so wie's aussieht, bin ich der einzige von den Offiziellen, der hier reinschaut.
Entschuldigt bitte, wenn ich jetzt nicht auf alle Fragen genauestens eingehen kann.
Zumal sich die Fragen nun doch häufen, während es im Semester hier eher ruhig zuging...

gruss,
thomas

jno
BASIC-Programmierer
BASIC-Programmierer
Beiträge: 144
Registriert: 18. Mai 2007 09:41

Re: cg2_Nurbs2.pdf Folie 12

Beitrag von jno »

thomas_kalbe hat geschrieben: Die Folie 17 stimmt soweit eigentlich.
Im Exponenten N_i^n steht der Grad des Basissplines, auf Folie 17 ist n also der Grad.
Dann startet die Rekursion, d_i^0 werden auf d_i gesetzt, dann weiter wie im deCasteljau-Algorithmus (vom Prinzip her ähnliches Vorgehen).
Okay, du sagst also n ist der Grad. Macht auch Sinn, da die ersten n+1 Knoten ja gleich sind. In der ersten Zeile der Folie steht allerdings "Sei eine B-Splinekurve [...] vom Grad r ...".
Also sind r und n das Gleiche?

thomas_kalbe
Nerd
Nerd
Beiträge: 570
Registriert: 10. Jun 2006 14:58

Re: cg2_Nurbs2.pdf Folie 12

Beitrag von thomas_kalbe »

nochmal zu N_3,2:

N_4,1 setzt sich aus einer Linearkombination von N40 und N50
zusammen, die aber beide 0 sind weil nur N30 einen Wert ungleich
Null hat für das Intervall von [2,3)

thomas_kalbe
Nerd
Nerd
Beiträge: 570
Registriert: 10. Jun 2006 14:58

Re: cg2_Nurbs2.pdf Folie 12

Beitrag von thomas_kalbe »

ja, der Satz auf der Folie ist natürlich blödsinn.

Sieht man auch am Knotenvektor, dass hier n der Grad sein muss.

gruss,
thomas

Tiger80
Mausschubser
Mausschubser
Beiträge: 54
Registriert: 31. Dez 2004 18:12
Wohnort: darmstadt
Kontaktdaten:

Re: cg2_Nurbs2.pdf Folie 12

Beitrag von Tiger80 »

Also sind r und n das Gleiche?
Das ist blödsinn was auf der Folie steht. Es müsste \(n\) und nicht \(r\) heissen. \(r\) ist eine Variable für den Grad der Basisfunktionen, so habe ich zumindest festgestellt. Ich weiss auch nicht warum diese ganzen Verwirrungen in den Folien mal \(p\) mal \(n\) mal \(r\).

thomas_kalbe
Nerd
Nerd
Beiträge: 570
Registriert: 10. Jun 2006 14:58

Re: cg2_Nurbs2.pdf Folie 12

Beitrag von thomas_kalbe »

Nein, r und n sind natürlich nicht dasselbe.

Finde ich auch nicht so toll, dass die Notation in den Folien nicht konsistent ist,
zumal ich mir damit jetzt meinen Sonntag ... (wie ihr auch ...) .

Naja.

Schaut aber doch mal auf Folie 11 im gleichen Foliensatz:

"Sei n <= m und T = ... "
...
"heissen normalisierte B-Splines vom Grad n über T."
Sie sind hier rekursiv definiert, insofern ist tatsächlich irgendwann r = n, nur eben
in der letzten Rekursionsstufe. Vielleicht habt
ihr das gemeint?

gruss,
thomas

jno
BASIC-Programmierer
BASIC-Programmierer
Beiträge: 144
Registriert: 18. Mai 2007 09:41

Re: cg2_Nurbs2.pdf Folie 12

Beitrag von jno »

thomas_kalbe hat geschrieben:[...]
Sie sind hier rekursiv definiert, insofern ist tatsächlich irgendwann r = n, nur eben
in der letzten Rekursionsstufe. Vielleicht habt
ihr das gemeint?
jno hat geschrieben:[...]Oder ist vielleicht in Wirklichkeit n der richtige Grad und r die Rekursionstiefe? Ich bin verwirrt...
Ja, genau das hab ich gemeint. Jetzt könnte ich zwar wieder damit anfangen, dass auf http://en.wikipedia.org/wiki/De_Boor's_algorithm dieser Index anders gesetzt ist, da ist nämlich

\(\alpha_{i,k}=\frac{t-t_i}{t_{i+n+1-r}-t_i}}\) anstatt der Formel \(\alpha_{i,k}=\frac{t-t_{i+r}}{t_{i+n+1}-t_{i+r}}}\) in den Folien, aber das ist am Ende sicher aus irgend einem mir nicht ersichtlichen Grund das Gleiche..

Tiger80
Mausschubser
Mausschubser
Beiträge: 54
Registriert: 31. Dez 2004 18:12
Wohnort: darmstadt
Kontaktdaten:

Re: cg2_Nurbs2.pdf Folie 12

Beitrag von Tiger80 »

Ja, das meinte ich so. Aber allgemein bei der Def. hätte man \(n\) statt \(r\) schreiben sollen. Danke und Gruss

Philip
Mausschubser
Mausschubser
Beiträge: 48
Registriert: 24. Okt 2004 16:25

Re: cg2_Nurbs2.pdf Folie 12

Beitrag von Philip »

Mich würde immer noch gerne interessieren, was genau n angibt in der folgenden Gleichung:
\(C^w(u) = \sum_{i=0}^n N_{i,p}(u)P_i^w\)
Ist das der höchste Index der Kontrollpunkte?
Ist das der Grad der NURBS?

jno
BASIC-Programmierer
BASIC-Programmierer
Beiträge: 144
Registriert: 18. Mai 2007 09:41

Re: cg2_Nurbs2.pdf Folie 12

Beitrag von jno »

Es muss eigentlich #Kontrollpunkte - 1 sein. Es ist ja zB kein Problem eine Nurbkurve mit Grad 2 und 5 Kontrollpunkten zu haben. Die Tatsache, dass die Kontrollpunkte \(P_i^w\) in der Summe steht, legt jetzt schon nahe, dass über alle Kontrollpunkte summiert wird..

Antworten

Zurück zu „Archiv“