Die Modelling-Theorie : Prototyp Lexikon

Hallo Leute,
es geht hier um die Hintergründe der Oberflächenformen, die man zum modelln verwenden kann. Ich habe kein spezielles Modellingproblem und es werden zunächst wenig Bildchen gezeigt. In diesem Thread versuche ich die interessierte Board-Gemeinde in meinen Versuch, ein kleines Begriffsregister rund ums Modelling zu erstellen, einzuweihen und sie an der Perfektionierung teilhaben zu lassen. Wer mehr weiß, fühlt sich also verpflichtet hier Dinge richtig zu stellen. (-Jes, Sir!) ::;

es folgen jetzt posts von mir, die die bearbeitung eines bestimmten themas/ begriffs einläuten. (bitte lasst das nicht zu einem dialog zwischen mir und lenno werden). ihr dürft auch alle fragen stellen und fragen wenn ihr was nich peilt und das aber gern würdet. an aktuellen beispielen sehen wir aber, dass man durchaus mit einem halbwissen wunderschöne renderings erschaffen kann und somit sollte keiner panik kriegen wenn er das hier nicht weiß/schnallt.

denn mal los.
onetoe

Der Spline

Stichworte:
Polynome/Polynomfunktionen; Interpolation; Polynominterpolation; Splineinterpolation

Spline-Bestandteile:
Kontrollpunkte; Polynomfunktionen; Spline-Kurve

0.1 Polynome
Alle eindimensionalen und zweidimensionalen Funktionen sind Polynome (also konstante, lineare und quadratische Funktionen). Der Grad des Polynoms bezeichnet den höchsten Exponenten des Polynoms.
Beispiele (wikipedia):
Polynome des Grades…
…0 werden konstante Funktionen genannt (z. B. P(x) = -1).
…1 werden lineare Funktionen genannt (z. B. P(x) = 3x + 5).
…2 werden quadratische Funktionen genannt (z. B. P(x) = 3x² - 4x + 2).
…3 werden kubische Funktionen genannt (z. B. P(x) = 4x³ - 2x² + 7x - 2).

0.2 Interpolation
Zur Vorstellung: Man könnte eine Interpolation mit der Glättung einer Linie im Zickzackmuster zu einer Wellenlinie vergleichen. Eine Interpolation erhöht also die Informationsrate einer Funktion/Linie.
Es gibt verschiedene Interpolationsverfahren. Zum Beispiel ist die einfachste Art der Interpolation, die lineare Interpolation: Verbindung zweier Punkte zu einer Funktion. Hier soll aber nur erläutert werden warum die stückweise Interpolation (also die Spline-Interpolation) der Polynom-Interpolation vorgezogen wird.
Die mathematische Polynominterpolation einer Linie wird so beschrieben: Ein Polynom des n-ten Grades wird zu einem Polynom des (n+1)-ten Grades umgewandelt, gewinnt also an Punktdichte pro Koordinatensystem-Einheit. Es wird also eine Polynomfunktion verwendet um eine Funktion zu interpolieren. Die Spline-Interpolation erhebt jeden Polynomabschnitt einer Funktion in einen höheren Polynomgrad. Die Spline-Interpolation kann somit in bestimmten Fällen ein genaueres Ergebnis erzielen, da sich die Umrechnung eines Funktionsabschnittes nicht auf den Rest der Funktion auswirkt. (also wenn der erste Punkt der Funktion tausend Einheiten weiter “oben” liegt als der Rest, wird keine riesige Kurve zwischen dem Punkt und dem Rest interpoliert (das wäre der Fall bei Polynominterpolation) sondern nur zwischen dem Punkt und einem definierten Abschnitt der Funktion. - Bild muss her ^^)

1.Splines
Splines sind mathematisch definierte Funktionen, die aus aneinandergereihten Polynomen bestehen. Sie finden in der numerischen Mathematik eine theoretische Anwendung. „Praktisch“ werden sie auch in digitalen 3D-Anwendungen benutzt. Die aus solchen Anwendungen bekannten Splines sind durch Hilfestellungen und Werkzeuge leicht zu erstellen und bearbeiten, obwohl sie die relativ komplizierte Natur ihrer „Brüder“ aus der Algebra übernommen haben. Somit steckt hinter dem Modelling-Spline ebenso die Polynom-Struktur, die den Spline in Abschnitte teilt, die aus Polynomfunktionen eines immer gleichen Grades bestehen. Das heißt, wenn ein Abschnitt des Splines (in vereinfachter Betrachtungsweise) einen Interpolationsgrad von 0 hat, ist der ganze Spline nicht interpoliert – bildet also keine glatte Kurve, sondern einen liniaren Spline, der aus linearen Gliedern (ax) besteht. Eine der standardmäßigen Hilfestellungen der 3D-Anwendungen für Modelling-Spline sind die Kontrollpunkte, mit denen man den Verlauf der Spline-Kurve leicht bearbeiten kann.


Soweit mein Stand. Größtenteils wikipedia und das was ich davon zu verstehen geglaubt hab, die gehn da halt komplett von der algebra her ran. nich unlogisch, aber komplex. ich les mir morgen nochmal alles durch was ich geschrieben hab und werd mich dann erstmal selbst berichtigen ^^. überall fehlt eigentlich was. zum beispiel der part über interpolaton, und warum splineinterpolation besser is als polynominterpolation. ach ja wir reden hier in keiner weise von polygonen - merken.
onetoe

Also mal ne Frage zu den Splines.
Ich hab oben versucht zu beschreiben, warum die Spline-Interpolation schlauer is als die Polynom-Interpolation. So, wie ich das verstanden hab müsste bei diesem Bild (wikipedia):
[Polynom-Interpolation]

… eigentlich eine kaum “schwankende” Funktion entstehen (also so dass jeder Punkt die Interpolation der gesamten Linie beeinflusst). Oder hab ich das falsch verstanden? :()?

Zum Vergleich die Spline-Interpolation:
[Spline-Interpolation]

Sieht meiner Meinung nach wie erwartet aus. Stückweise Interpolation

onetoe

ja genau! und die antwort ist wie immer: 42! :o)

Woher stammen die Kurvengrafiken bzw. mit welchem Programm hast du sie gemacht?

@gentle:

… müsste bei diesem Bild (wikipedia): …

alles von wikipedia. du findest alle bilder hier:
www.wikipedia.de/wiki/Interpolation
-> du kannst mit sketch&toon sowas auch machen
-> die bilder die du hier siehst wurden sicher mit einer cad-anwendung erstellt

@steppes:
ich schätz mal du willst mir damit sagen, wie weit ich mich von diesem planeten entfernt habe. nun, ich habe interesse an diesem thema, aber leider nich genug basics in algebra und so und versuche das thema auf ne verständliche weise auf zu arbeiten. ich kann mir vorstellen, dass die meisten dabei brechreiz kriegen…
jedem seins halt.

onetoe

nein, keinen brechreiz, auf keinsten!

ich versteh nur nicht was du da schreibst

Das einzige, was ich zu dem thema weiß ist, dass der grad der Funktion von den Richtungsänderungen abhängt, di der graph macht… -.-

meint ihr ich könnte mal maxon anmailen ob die mir was über ihre basics erzählen? ich finds irgendwie dumm im schlamm zu wühlen während andere das alles schon durchhaben und noch dazu zur entwicklung benutzt haben…
naja ich treff mich am we mit ein paar mathematik-studenten, ma schaun wie weit die mir was beibringen können…
onetoe

hab jetzt am wochenende mit mathematikern geredet…
… und die große peilung setzte ein. :roll

also: Unterschiedliche Kurvenformen
ich habe mich gefragt, wie ein spline mit einer immer gleichen art von punkten unterschiedliche formen erstellen kann (z.B. wechsel von linear zu kubisch)

  • ein Spline ist eine Funktion.
  • Man kann Punkte mithilfe von verschiedenen Techniken mit einer Funktion verbinden - Interpolation.
    dabei liegen die gegeben Punkte genau auf der neuen Funktion und dazwischen werden Punkte interpoliert. Die einfachste Interpolation wird lineare Interpolation genannt = Verbindung mehrer Punkte mit Geraden.
  • Man kann Punkte auch mithilfe der Spline-Interpolation interpolieren. Splines können ganz verschiedene Eigenschaften haben, aber was sie gleich macht, ist ihre Natur: Splines sind Anreihungen von Polynomen, die unterschiedlichen Grades sein können.
  • Polynome sind Funktionen, die genau einen Punkt mehr benötigen, als sie Grade haben, um eindeutig definiert zu werden. Zum beispiel für ein Polynom 1. Grades benötigt man 2 Punkte - eine geneigte Strecke im Koordinatensystem. Das mit dem Grad ist jetzt nicht wirklich von Bedeutung, es geht darum, dass Polynome eine festgelegte Form haben.
    Das hier ist eine Polynom-Funktion 3. Grades, die genau 4 Punkte benötigt um eindeutig beschrieben zu werden:

    So was kann man aber NICHT mit einem Polynom 3.Grades beschreiben:

    Uuuuuund das liegt daran, dass Polynome eine uniforme Gestalt haben, dass heißt also “großer berg, großes tal, großer berg …” - aber “großer berg, kleines tal, kleiner berg, großes tal…” ist NICHT drin (wenn man bei der gradzahl bleibt). Also sind Polynome zu “starr” um mit ihnen frei arbeiten zu können.
  • der Spline nimmt sich also eine bestimme Funktionsart und ordnet sie so an, dass alle Punkte getroffen - egal wie abschüssig sie liegen.
    er kann also jeder Art der Kurve zwischen einzelnen Punkten interpolieren.

-> erstellt einfach mal einen spline und guckt bei jedem weiteren hinzugefügten punkt wie sich die kurve verändert (zwei punkte - gerade, 3 punkte - geglättet). durch die praxis wird das sehr anschaulich.

später dann mehr zum B-Spline, der is dann sowas wie die angwenderfreundliche Version einer Spline-Funktion (-- kontrollpunkte --)

hoffe das war einleuchtend…
onetoe

jetzt hast du uns aber immernoch nicht erklärt, wie man aus den Punkten die Funktionsterme bekommt, was ja das eigentlich interessante ist.:()()

Das andre ist ja nach einige Minuten überlegen auch rausfindbar:o)

na dazu muss man ein gleichungssystem aufstellen
…glaub ich
war doch so ähnlich irgendwie in mathe

man kann aus jeder anzahl von punkten genau eine zugeordnete polynom-funktion finden. mathematisch läuft das über das lösen des gleichungssystems:
4 Punkte sind gegeben. ein polynom dritten grades erwartet uns.
P(X) = ax^3 + bx^2 + cx + d
wir setzen nun viermal ein x ein (was wir durch die punkte kennen)
und können dann eine gleichung von einer anderen abziehen. dabei werden schrittweise die variablen rauskürzen, bis wir nur noch eine variable haben, die wir umstellen. erste variable gelöst. einsetzen in frühere schritte, rauskürzen, nächste variable. ich könnte mal mein durchgerechnetes beispiel scannen, aber darum solls nich gehn.

was wirklich spannend is, is, wie ein spline aus punkten eine funktion macht. im grunde teilt er je nach grad (ja der spline hat auch einen grad.. also polynom-begründete natur) die anzahl der punkte gleichmäßig und verfährt dann wie wir im einzelnen. also beispiel: wir haben 6 punkte. wir haben jetzt die möglichkeit eine polynominterpolation durchzuführen oder eine spline-interpolation. der spline wird je nach eigenschaft begrenzte anzahlen von punkten voneinander abhängig machen - das polynom macht alle punkte voneinander abhängig.

–> bilder:








wir sehen das der akima-spline jedem punkt eine beeinflussende reichweite von einem punkt gibt. also ein punkt wirkt von vorgänger bis nachfolger. wenn ich das richtig verstanden hab, wird hier eine quadratische polynomfunktion angewandt (drei punkte für 2 grade) und in den spline implementiert. splines sin genial leute.

soweit meine fortschritte
onetoe

disclaimer//
Tadaaaa! Ihr glaubtet ich hätte aufgegeben … denkste!
Also hier mein neuer Versuch Klarheit über die digitale Geometrie zu finden.

In den Anhängen habe ich Bilder und die passenden Word-Dateien gepackt.
Ihr könnt begutachten, wie ich die Oberflächentypen gegliedert und charakterisiert habe.

Ich erhoffe mir Feedback und konstruktive Kritik von Leuten des Lenno’schen Kalibers :o) Also einfach in den docs rumschreiben und posten… kann jede hilfe gebrauchen.

Vielen Dank!

onetoe

doc-files.zip (10.4 KB)

moin

ich habe mich jetzt entschlossen meine facharbeit über subdivision surfaces zu schreiben und muss mir jetzt einen guten überblick verschaffen, um mein thema zu spezialisieren.
daher hab ich jetzt erstmal mit der tabelle weitergemacht und papers gesammelt.
wenn ihr tipps, fragen oder kritik habt - nur her damit :wink:
achja, ich werde versuchen das ganze auf englisch in englischen foren zu posten, vielleicht cgtalk. hat jemand ne ahnung wo ich gute ansprechpartner finde?

danke!
onetoe

edit: hier noch ein kleines leckerli: verschiedene subdivision algorithmen:
http://www.uvmapper.com/sds.gif

guck mal hier http://www.subdivisionmodeling.com der polygon primer ist sehr hilfreich

Danke Toadie!
zwar für anfänger aber ziemlich umfangreich!
Empfehl ich weiter :wink:
onetoe

jeder fängt mal an :wink: