graphische datenverarbeitung
DESCRIPTION
Graphische Datenverarbeitung. Dr. Markus Heitz. Hinweise. Email: [email protected] Informationsmaterial, Powerpoint-Präsentation: www.ba-stuttgart.de/~mheitz - PowerPoint PPT PresentationTRANSCRIPT
![Page 1: Graphische Datenverarbeitung](https://reader035.vdocuments.net/reader035/viewer/2022062519/56814e4e550346895dbbdac4/html5/thumbnails/1.jpg)
Graphische Datenverarbeitung
Dr. Markus Heitz
![Page 2: Graphische Datenverarbeitung](https://reader035.vdocuments.net/reader035/viewer/2022062519/56814e4e550346895dbbdac4/html5/thumbnails/2.jpg)
Hinweise
• Email: [email protected]
• Informationsmaterial, Powerpoint-Präsentation: www.ba-stuttgart.de/~mheitz
• Vorlesungsskript von Prof. Dr. Rudolf Messer: http://www.ba-stuttgart.de/studienangebot/technik/it/ba-intern/vorlesung/gdv/vorles_GDV.htm
![Page 3: Graphische Datenverarbeitung](https://reader035.vdocuments.net/reader035/viewer/2022062519/56814e4e550346895dbbdac4/html5/thumbnails/3.jpg)
Kurven- und Flächendarstellung
• Wichtige Forderungen für die Darstellung von Kurven und Flächen sind:– Jede gewünschte Form muß mit genügender Genauigkeit darstellbar sein.
– Die approximierenden (interpolierenden) Funktionen sollen in Parameterform einzugeben sein. Sie müssen leicht differenzierbar sein, damit die Berechnung von Tangenten und Krümmungen einfach ist.
– Affine (lineare) Transformationen (Positionierung, Skalierung, ...) sollten leicht möglich sein.
![Page 4: Graphische Datenverarbeitung](https://reader035.vdocuments.net/reader035/viewer/2022062519/56814e4e550346895dbbdac4/html5/thumbnails/4.jpg)
Splines
• Funktionen, die stückweise aus Polynomen bestehen. Ein Spline hat die Ordnung m (Grad m-1), wenn er stückweise aus Polynomen der Ordnung m besteht.
• Polynome: – einfach zu berechnen und leicht differenzierbar.
– Leider neigen Polynome mit vielen Stützstellen zum Oszillieren.
– deshalb verwendet man zweckmäßigerweise stückweise zusammengesetzte Funktionen mit stetigen und glatten Übergängen.
• Beispiel: Ein Spline der Ordnung 3 (des Grades 2) besteht stückweise aus Parabeln:
![Page 5: Graphische Datenverarbeitung](https://reader035.vdocuments.net/reader035/viewer/2022062519/56814e4e550346895dbbdac4/html5/thumbnails/5.jpg)
Kubische Splines
• Besonders beliebt für Splines: Polynome 3. Grades (kubische Polynome), da Polynome niedrigeren Grades zu inflexibel sind, d.h. ein Kurvensegment
kann dann nicht durch die zwei Endpunkte gehen und gleichzeitig in beiden Endpunkten eine vorgegebene Steigung besitzen
Polynome höheren Grades leicht oszillieren und der Rechenaufwand stark ansteigt.
parametrisierte kubische Kurven die Kurven geringster Ordnung sind, die in drei Dimensionen nicht planar sind (ein Polynom zweiter Ordnung definiert eine Ebene!).
• Für spezielle Zwecke: Polynome höherer Ordnung (z.B. aerodynamische Oberflächen, Flugzeugbau)
![Page 6: Graphische Datenverarbeitung](https://reader035.vdocuments.net/reader035/viewer/2022062519/56814e4e550346895dbbdac4/html5/thumbnails/6.jpg)
Interpolation: Lagrange Polynome
• ein Polynom möglichst niedrigen Grades, das durch alle Stützpunkte geht. Für n+1 Punkte: Polynom n´ten Grades
– Rechenaufwand wächst mit dem Quadrat der Anzahl der Stützstellen,
– Polynome neigen zum Überschwingen, insbesondere in der Nähe der Randpunkte.
n
ijj ji
jn
ii xx
xxyy
00
![Page 7: Graphische Datenverarbeitung](https://reader035.vdocuments.net/reader035/viewer/2022062519/56814e4e550346895dbbdac4/html5/thumbnails/7.jpg)
![Page 8: Graphische Datenverarbeitung](https://reader035.vdocuments.net/reader035/viewer/2022062519/56814e4e550346895dbbdac4/html5/thumbnails/8.jpg)
Interpolation durch kubische Splines
• Kubische Splines sind stückweise kubische Polynome, d.h. zwischen zwei Stützpunkte kommt je ein Polynom Si(x) dritten Grades:Si(x) = ai(x- xi)3 + bi(x- xi)2 + ci(x- xi) + di
• Die 4 Koeffizienten werden so gewählt, daß die Kurve an allen Übergangsstellen zweimal stetig differenzierbar ist.
• Übergangsbedingungen:
11)( iii yxs
dx
xds
dx
xds iiii )()( 1 21
2
2
2 )()(
dx
xsd
dx
xsd iiii
iii yxs )(
![Page 9: Graphische Datenverarbeitung](https://reader035.vdocuments.net/reader035/viewer/2022062519/56814e4e550346895dbbdac4/html5/thumbnails/9.jpg)
Beispiel mit 4 Punkten
• Drei Polynome: 12 Unbekannte
iii yxs )( für i= 1...311)( iii yxs
dx
xds
dx
xds iiii )()( 1 21
2
2
2 )()(
dx
xsd
dx
xsd iiii für i= 2, 3
Lineares Gleichungssystem mit 10 Gleichungen:2 Unbekannte können willkürlich festgelegt werdenBeispiel: Natürliche kubische Splines mit
0)(
211
2
dx
xsd0
)(2
12
dx
xsd nn
![Page 10: Graphische Datenverarbeitung](https://reader035.vdocuments.net/reader035/viewer/2022062519/56814e4e550346895dbbdac4/html5/thumbnails/10.jpg)
Kubische Splines
• Lineares Gleichungssytem mit schnellem Lösungsverfahren
• Nachteile: – Jeder Kurvenabschnitt ist von allen Stützpunkten abhängig
– kann nicht in Teilkurven zerlegt werden
• Vorteile: – Glatte Kurve, zweimal stetig differenzierbar
– Geringes Überschwingen
![Page 11: Graphische Datenverarbeitung](https://reader035.vdocuments.net/reader035/viewer/2022062519/56814e4e550346895dbbdac4/html5/thumbnails/11.jpg)
Interpolation nach Akima
• Verläßt man die Forderung nach zweimaliger Differenzierbarkeit, so kann die Kurve leichter in Teilbereiche zerlegt werden. Nach dem Verfahren von Akima (Akima-Interpolation) versucht man, durch eine (heuristische) Bestimmung der Koeffizienten eine für das Auge akzeptable Kurve zu erzeugen.
![Page 12: Graphische Datenverarbeitung](https://reader035.vdocuments.net/reader035/viewer/2022062519/56814e4e550346895dbbdac4/html5/thumbnails/12.jpg)
Parameterdarstellung von Kubischen Splines
• Jedes räumliche Kurvensegment Si(u) = (x,y,z)(u) eines Splines läßt sich in der Parameterdarstellung folgendermaßen schreiben: xi(u) = aiu3 + biu2 + ciu + di 0 u 1yi(u) = eiu3 + fiu2 + giu + hi
zi(u) = iiu3 + jiu2 + kiu + li
• Mit der Matrix C und dem Vektor T
iiii
iiii
iiii
iiii
ponm
lkji
hgfe
dcba
C
1
2
3
u
u
u
T ergibt sich TCuSi )(
![Page 13: Graphische Datenverarbeitung](https://reader035.vdocuments.net/reader035/viewer/2022062519/56814e4e550346895dbbdac4/html5/thumbnails/13.jpg)
Parameterdarstellung von Kubischen Splines
• Si´(u) ist der Tangentenvektor der Kurve.
• Werden zwei Kurvensegmente verbunden, so heißt die Kurve geometrisch stetig.
• Sind die Tangentenvektoren in Betrag und Richtung gleich, so ist die Kurve stetig.
• Jedes kubische Polynom hat vier Koeffizienten. Damit können insgesamt 4 Größen festgelegt werden. Man unterscheidet demnach:
– 2 Endpunkte und 2 Tangentenvektoren: hermitesche Kurven
– 2 Endpunkte und 2 weitere Kontrollpunkte, die die Tangenvektoren in den Endpunkten festlegen
– 4 Kontrollpunkte, die nicht auf der Kurve liegen: Approximation durch Bezierkurven, Splines
![Page 14: Graphische Datenverarbeitung](https://reader035.vdocuments.net/reader035/viewer/2022062519/56814e4e550346895dbbdac4/html5/thumbnails/14.jpg)
Interpolation mit kubischen Hermite-Polynomen
• Polynominterpolation ist nicht darauf beschränkt, Punkte zu interpolieren, sondern man kann auch Ableitungen an den Stützstellen interpolieren. Hermite-Polynome:H0(u) = (1 - u)2(1 + 2u)H1(u) = u (1 - u)2
H2(u) = u2 (1 - u)H3(u) = (3 - 2u) u2
• Die Koeffizienten eines damit erstellten Polynom drittes Gradesq(u) = c0H0(u) + c1H1(u) + c2H2(u) + c3H3(u)können geometrisch gedeutet werden:
• Sind zwei Punkte P0, P1 mit den zwei dazugehörigen Tangentenvektoren m0 und m1 zu interpolieren, so ergibt sichq(u) = P0H0(u) + m0H1(u) + m1H2(u) + P1H3(u)
![Page 15: Graphische Datenverarbeitung](https://reader035.vdocuments.net/reader035/viewer/2022062519/56814e4e550346895dbbdac4/html5/thumbnails/15.jpg)
Approximation von Kurven: Bézier-Kurven
• Bernstein-Polynome
Eigenschaften:– Sie nehmen im Intervall [0,1] keine negativen Werte an.
– Die Summe der Werte über alle Polynome ist immer gleich eins.
– Jedes Polynom besitzt im Intervall genau ein Maximum (Grad > 0).
– Die Maxima sind gleichabständig über das Intervall [0,1] verteilt. • Bezier-Kurve:
mit den n+1 Stützstellen
inini uu
i
nuB
)1()(
n
i
nii uBPuB
0
)()(
i
ii y
xP
10 u
![Page 16: Graphische Datenverarbeitung](https://reader035.vdocuments.net/reader035/viewer/2022062519/56814e4e550346895dbbdac4/html5/thumbnails/16.jpg)
Bézier-Kurve mit vier Stützstellen
3
0
3 )()(i
ii uBPuB
33
22
12
03 )1(3)1(3)1()( PuPuuPuuPuuB
Beispiel, kubische Bézier-Kurve:
P0 = (0, 0) P1 = (2, 4) P2 = (6, 4) P3 = (4, 4)
Allgemein: Ordnung = Zahl der Stützpunkte - 1
![Page 17: Graphische Datenverarbeitung](https://reader035.vdocuments.net/reader035/viewer/2022062519/56814e4e550346895dbbdac4/html5/thumbnails/17.jpg)
0
0,5
1
1,5
2
2,5
3
3,5
4
0 1 2 3 4 5 6
y
P
Bézier-Kurve mit vier Stützstellen
![Page 18: Graphische Datenverarbeitung](https://reader035.vdocuments.net/reader035/viewer/2022062519/56814e4e550346895dbbdac4/html5/thumbnails/18.jpg)
Gewichtsfunktionen der Bézier-Approximation für n= 2,3,4
20B 2
1B 22B
30B 3
2B31B 3
3B
40B
41B 4
2B 43B
40B
![Page 19: Graphische Datenverarbeitung](https://reader035.vdocuments.net/reader035/viewer/2022062519/56814e4e550346895dbbdac4/html5/thumbnails/19.jpg)
Eigenschaften der Bézier-Darstellung
• Die ersten beiden beziehungsweise die letzten beiden Punkte bestimmen die Tangenten am Anfang beziehungsweise am Ende.
• Die Kurve verläuft im Innern der konvexen Hülle aller Kontrollpunkte.
• Die affine Transformation einer Kurve erhält man durch affine Transformation ihrer Kontrollpunkte.
• In CAD-Programmen: Kontrolle der Form durch verschieben der Stützpunkte und verändern der Tangentenvektoren
• Weit verbreitet (auch für Flächendarstellung)
• Nachteil: Es ist schwierig, die Tangenten benachbarter Flächen aneinander anzupassen.
![Page 20: Graphische Datenverarbeitung](https://reader035.vdocuments.net/reader035/viewer/2022062519/56814e4e550346895dbbdac4/html5/thumbnails/20.jpg)
Bézier-Splines
• Splines deren Segmente aus Bézier-Polynomen besteht.
• Meist kubische Bézierkurven.
![Page 21: Graphische Datenverarbeitung](https://reader035.vdocuments.net/reader035/viewer/2022062519/56814e4e550346895dbbdac4/html5/thumbnails/21.jpg)
B-Splines
• Gleiche Struktur wie Bézier-Kurven
• Aber: schnell abfallende Gewichtsfunktionen Ni,m (u) anstatt Bi,n (t)
• Kein globaler Einfluß aller Stützstellen mehr.
• Maximaler Grad der Kurve gering.
• Resultat:Der Einfluß jeder Stützstelle Pi wird auf einen Bereich in der Umgebung der Stützstelle beschränkt.
n
imii uNPuC
0, )()( mit 10 u
![Page 22: Graphische Datenverarbeitung](https://reader035.vdocuments.net/reader035/viewer/2022062519/56814e4e550346895dbbdac4/html5/thumbnails/22.jpg)
B-Splines
• Aufteilung der Kurve in Teilstücke (Segmente).
• Äquidistanter Knotenvektor für Spline der Ordnung m: T = (t0 , ... ,tn+2*(m-1)) 0 für j<mfür tj gilt j = 0 ... n+2*(m-1) tj= (j-m+1)/n für m <=j<n+m-1
1 für j>=n+m-1
• Beispiel: m=3, n=5 (6 Stützpunkte)T = (0, 0, 0, 0.2, 0.4, 0.6, 0.8, 1, 1, 1)
![Page 23: Graphische Datenverarbeitung](https://reader035.vdocuments.net/reader035/viewer/2022062519/56814e4e550346895dbbdac4/html5/thumbnails/23.jpg)
B-Splines: Gewichtsfunktionen
• Die Gewichtsfunktionen Ni,m (u) von der Ordnung m (Grad m-1) sind stückweise rekursiv definiert:
Ordnung m=1: Ni,m(u) =
Ordnung m>1: )()()( 1,11
1,1
, uNtt
utuN
tt
tuuN mi
imi
mimi
imi
imi
1 für ti u ti+1
0 sonst
![Page 24: Graphische Datenverarbeitung](https://reader035.vdocuments.net/reader035/viewer/2022062519/56814e4e550346895dbbdac4/html5/thumbnails/24.jpg)
B-Splines: Gewichtsfunktionen
• Beispiel, m=2:
eingesetzt:
)()()( 1,112
21,
12, uN
tt
utuN
tt
tuuN i
ii
ii
ii
ii
ii
ii tt
tuuN
1
2, )( für ti u ti+1
12
22, )(
ii
ii tt
utuN für ti+1 u ti+2
0)(2, uN i sonst
![Page 25: Graphische Datenverarbeitung](https://reader035.vdocuments.net/reader035/viewer/2022062519/56814e4e550346895dbbdac4/html5/thumbnails/25.jpg)
B-Splines: Gewichtsfunktionen
![Page 26: Graphische Datenverarbeitung](https://reader035.vdocuments.net/reader035/viewer/2022062519/56814e4e550346895dbbdac4/html5/thumbnails/26.jpg)
B-Splines m=3
• Für m=3 ergeben sich die quadratischen B-Splines:
)()()( 2,113
32,
23, uN
tt
utuN
tt
tuuN i
ii
ii
ii
ii
))((
2)(
21
22
3,iiii
iii tttt
tutuuN
für ti u
ti+1
))((
)(
))((
)()(
1213
21331
122
222
3,
iiii
iiii
iiii
iiiii tttt
uttutt
tttt
uttuttuN
für ti+1 u ti+2
0)(3, uN isonst
für ti+2 u ti+3
eingesetzt:
))((
2)(
2313
233
2
3,
iiii
iii tttt
tutuuN
![Page 27: Graphische Datenverarbeitung](https://reader035.vdocuments.net/reader035/viewer/2022062519/56814e4e550346895dbbdac4/html5/thumbnails/27.jpg)
Gewichtsfunktionen der quadratischen B-Spline-Approximation
![Page 28: Graphische Datenverarbeitung](https://reader035.vdocuments.net/reader035/viewer/2022062519/56814e4e550346895dbbdac4/html5/thumbnails/28.jpg)
Gewichtsfunktionen der quadratischen B-Spline-Approximation
• Gewichtsfunktionen der quadratischen B-Spline-Approximation (m=3) für 5 Punkte (n=4),T = (0,0,0,0.25,0.5,0.75,1.0,1.0,1.0)
• Die Summe aller Gewichtsfaktoren ergibt für jeden Wert t stets 1. Da am Anfangs- und Endpunkt jeweils nur eine einzige Gewichtsfunktion ungleich Null ist, wird der Anfangs- und der Endpunkt immer exakt getroffen.
![Page 29: Graphische Datenverarbeitung](https://reader035.vdocuments.net/reader035/viewer/2022062519/56814e4e550346895dbbdac4/html5/thumbnails/29.jpg)
B-Splines mit m=2,...,7
• Je größer m desto weiter von den Stützstellen entfernt.
• m=2: Polygonzug durch die Stützpunkte (äußere Kurve)
![Page 30: Graphische Datenverarbeitung](https://reader035.vdocuments.net/reader035/viewer/2022062519/56814e4e550346895dbbdac4/html5/thumbnails/30.jpg)
Eigenschaften von B-Splines
• Die Kurve verläuft im Intervall zwischen zwei Knoten innerhalb der konvexen Hülle der zugehörigen p+1 Kontroll-unkte (Ordnung p).
• Keine Ebene hat mehr Durchstoßpunkte mit der Kurve als mit dem Polygon der Kontrollpunkte.
• Die affine Transformation einer Kurve erhält man durch die affine Transformation ihrer Kontrollpunkte.
• Wenn ein Kontrollpunkt verändert wird, so beeinflußt er nur p+1 Knotenintervalle (Ordnung p).
• Eine B-Spline-Kurve kann durch Einfügen von Vielfachknoten exakt in eine Folge von Bézierdarstellungen überführt werden.
![Page 31: Graphische Datenverarbeitung](https://reader035.vdocuments.net/reader035/viewer/2022062519/56814e4e550346895dbbdac4/html5/thumbnails/31.jpg)
Non-Uniform B-Splines
• Uniform B-Splines (UBS) bezeichnet: Die Knoten liegen gleichabständig, was bei gleichmäßig verlaufenden Kurven eine gute Lösung darstellt.
• Non-Uniform B-Splines (NUBS): beliebige Knotenfolgen, die errechnet oder vom Benutzer vorgegeben werden können:– Damit ist eine bessere Anpassung an wechselnde Verhältnisse
– präzisere Kontrolle der Form
– Darstellung einer wesentlich umfangreicheren Klasse von Formen möglich.
![Page 32: Graphische Datenverarbeitung](https://reader035.vdocuments.net/reader035/viewer/2022062519/56814e4e550346895dbbdac4/html5/thumbnails/32.jpg)
UBS der Ordnung 3 (Grad 2: Parabeln) mit 7 Stützpunkten
• Kontrollpunkte (Pole): P0, Pl, P2, P3, P4, P5, P6 Knotenvektor: T = (0,0,0,0.2,0.4,0.6,0.8,1,1,1)
• Eigenschaften dieser UBS 3. Ordnung:– Die Kurve besteht stückweise aus Polynomen der Ordnung 3 (Parabeln).
– Die Knoten sind (gemessen im Parameterwert t) gleichabständig.
– An den Knoten ist die Kurve punktstetig und tangentenstetig.
– Das Polygon ist in allen Knoten Tangente an die Kurve (dies gilt nur für die Ordnung 3).
– Die inneren Knoten liegen genau in der Mitte zwischen zwei Kontrollpunkten.
P0
P1
P2 P4
P5
P6
t=0.2t=0.4
t=0.8
P3
t=0.6
![Page 33: Graphische Datenverarbeitung](https://reader035.vdocuments.net/reader035/viewer/2022062519/56814e4e550346895dbbdac4/html5/thumbnails/33.jpg)
Vergleich UBS - NUBS
• UBS:– In Anwendungsprogrammen kann im allgemeinen jeder beliebige Pol des
UBS angefaßt und in seiner Lage interaktiv verändert werden.
– Die Veränderung macht sich jeweils über m, hier also 3 Knotenintervalle bemerkbar, d.h. z.B. beim Pol P3 zwischen 0.2 < u < 0.8.
• NUBS:– Bei einem NUBS wird gegenüber einem UBS die Forderung, daß der
Knotenabstand bei den inneren Knoten (gemessen im Parameterwert u) gleichabständig ist, fallengelassen und es werden beliebige Knotenwerte zugelassen.
– Es darf kein innerer Knoten öfter als zweifach auftreten.
– Durch Variation eines inneren Knotens verschiebt sich der Punkt, in dem das Polygon Tangente an die Kurve ist. Das Polygon bleibt erhalten.
![Page 34: Graphische Datenverarbeitung](https://reader035.vdocuments.net/reader035/viewer/2022062519/56814e4e550346895dbbdac4/html5/thumbnails/34.jpg)
NUBS der Ordnung 3 mit 7 Stützpunkten
• Kontrollpunkte (Pole): P0, Pl, P2, P3, P4, P5, P6 Knotenvektor: T = (0,0,0,0.2,0.4,0.5,0.8,1,1,1)
• Wie UBS, aber anderer Knotenvektor: Das Verschieben des Knotens von u = 0.6 nach u = 0.5 vergrößert den Parabelabschnitt zwischen den beiden Knoten 0.5 und 0.8. Das Polygon bleibt in den Knoten Tangente an die Kurve.
P0
P1
P2 P4
P5
P6
t=0.2t=0.4
t=0.8
P3t=0.5
![Page 35: Graphische Datenverarbeitung](https://reader035.vdocuments.net/reader035/viewer/2022062519/56814e4e550346895dbbdac4/html5/thumbnails/35.jpg)
NUBS: Doppelter Knoten
• Kontrollpunkte (Pole): P0, Pl, P2, P3, P4, P5, P6 Knotenvektor: T = (0,0,0,0.2,0.5,0.5,0.8,1,1,1).
• Durch das Verschieben des Knotens u = 0.4 nach u = 0.5 und des Knotens u = 0.6 nach u = 0.5 entsteht bei t = 0.5 ein doppelter Knoten und ein Parabelabschnitt verschwindet. Der NUBS ist bei u = 0.5 nicht tangentenstetig, sondern besitzt dort einen Knick. Bei NUBS ist es also möglich, einen Knick im Inneren einer Kurve zu erzeugen
P0
P1
P2 P4
P5
P6
t=0.2t=0.5
t=0.8
P3
![Page 36: Graphische Datenverarbeitung](https://reader035.vdocuments.net/reader035/viewer/2022062519/56814e4e550346895dbbdac4/html5/thumbnails/36.jpg)
Rationale Darstellungen: URBS und NURBS
• Der Kreis ist durch parametrische Polynome nicht exakt darstellbar ist und damit auch nicht durch Bézier- oder B-Spline-Formen.
• Kreissegmente müssen immer approximiert werden.
• Erweiterung auf rationale Formen: Kurvenpunkt als Quotient zweier Polynomdarstellungen
• Kreisdarstellung:
2
2
1
1)(
u
uux
21
2)(
u
uuy
![Page 37: Graphische Datenverarbeitung](https://reader035.vdocuments.net/reader035/viewer/2022062519/56814e4e550346895dbbdac4/html5/thumbnails/37.jpg)
Rationale Darstellungen: URBS und NURBS
• Kegelschnittsegmente:
Die Pi sind Punkte auf dem Kegelschnitt.
• Der Gewichtsfaktor g1 bestimmt, um welchen Kegelschnitt es sich handelt:
– g1 < 1 : Ellipse (Sonderfall: Kreis)
– g1 = 1 : Parabel
– g1 > 1 : Hyperbel
• Mit rationalen Funktionen können alle Arten von Kegelschnitten und Kegelschnittsegmenten dargestellt werden.
• Realisierung in der Software ohne eine Vielzahl von Fallunterscheidungen
21
2
2211
20
)1(2)1(
)1(2)1()(
uuugu
uPuugPuPuK
![Page 38: Graphische Datenverarbeitung](https://reader035.vdocuments.net/reader035/viewer/2022062519/56814e4e550346895dbbdac4/html5/thumbnails/38.jpg)
URBS und NURBS
• Bei rationalen B-Splines wird jedem Kontrollpunkt (Stützpunkt, Pol) pi ein Gewichtsfaktor gi zugeordnet.
• Nicht rationale B-Splines gehen aus den rationalen hervor, indem alle Gewichte = 1 gesetzt werden..
• Pole mit Gewichten größer als 1 ziehen die Kurve zu sich heran.
• Pole mit Gewichten kleiner als 1 stoßen die Kurve von sich ab.
• Bei Gewichten gleich 1 ergibt sich der normale Verlauf.
n
imii
n
imiii
uNg
uNgPuC
0,
0,
)(
)()( mi
t
10 u
![Page 39: Graphische Datenverarbeitung](https://reader035.vdocuments.net/reader035/viewer/2022062519/56814e4e550346895dbbdac4/html5/thumbnails/39.jpg)
URBS
• Variation eines Gewichts
P0
P1P2
0.10.25
0.5 0.751
1.5
58
![Page 40: Graphische Datenverarbeitung](https://reader035.vdocuments.net/reader035/viewer/2022062519/56814e4e550346895dbbdac4/html5/thumbnails/40.jpg)
URBS Beispiel: Ordnung 3 mit 7 Stützpunkten
• Kontrollpunkte (Pole): P0, Pl, P2, P3, P4, P5, P6 Knotenvektor: T = (0,0,0,0.2,0.4,0.6,0.8,1,1,1)Gewichtsvektor: G = (1,1,1,2,0.2,1,1)
• URBS mit gleichem Polygon und den gleichem Knotenvektor wie UBS, aber: Gewichte != 1
• P3 mit dem Gewicht 2 zieht die Kurve zu sich heran.
• P4 mit dem Gewicht 0.2 stößt die Kurve von sich ab.
• Die Kurve ist in den Knoten tangentenstetig.
• Das Polygon bleibt in den Knoten Tangente an die Kurve.
P0
P1
P2 P4
P5
P6
t=0.2t=0.4
t=0.8
P3t=0.6
![Page 41: Graphische Datenverarbeitung](https://reader035.vdocuments.net/reader035/viewer/2022062519/56814e4e550346895dbbdac4/html5/thumbnails/41.jpg)
NURBS Beispiel: Ordnung 3 mit 7 Stützpunkten
• Kontrollpunkte (Pole): P0, Pl, P2, P3, P4, P5, P6 Knotenvektor: T = (0,0,0,0.2,0.4,0.75,0.8,1,1,1)Gewichtsvektor: G = (1,1,1,2,0.2,1,1)
• Der Knotenvektor ist gegenüber dem letzten Beispiel verändert. Diese Kurve ist jetzt non-uniform, also ein NURBS.
P0
P1
P2 P4
P5
P6
t=0.2t=0.4
t=0.8
P3
t=0.75
![Page 42: Graphische Datenverarbeitung](https://reader035.vdocuments.net/reader035/viewer/2022062519/56814e4e550346895dbbdac4/html5/thumbnails/42.jpg)
P0
P1
P2 P4
P5
P6
t=0.2
t=0.8
P3
t=0.7
t=0.3
NURBS Beispiel: Gewichtsvektor verändert
• Kontrollpunkte (Pole): P0, Pl, P2, P3, P4, P5, P6 Knotenvektor: T = (0,0,0,0.2,0.3,0.7,0.8,1,1,1)Gewichtsvektor: H = (1,1,1,0.2,1,1,1)
• Der Gewichtsvektor wurde verändert:– P3 hat das Gewicht 0.2 und stößt die Kurve von sich ab.
– Das Verschieben des Knotens t = 0.4 nach t = 0.3 (bzw. t = 0.6 nach t = 0.7) vergrößert den Kurvenabschnitt zwischen den beiden Knoten.
![Page 43: Graphische Datenverarbeitung](https://reader035.vdocuments.net/reader035/viewer/2022062519/56814e4e550346895dbbdac4/html5/thumbnails/43.jpg)
NURBS: Eigenschaften
• NURBS sind die am weitesten entwickelten Splines, die in CAD-Systemen Anwendung finden.
• NURBS können modifiziert werden durch– Verändern der Koordinaten der Pole
– Verändern des Knotenvektors
– Einfügen neuer Knoten
– Verändern der Gewichte der Pole
• Mit diesen Möglichkeiten werden NURBS auch extremen Design-Anforderungen gerecht.
![Page 44: Graphische Datenverarbeitung](https://reader035.vdocuments.net/reader035/viewer/2022062519/56814e4e550346895dbbdac4/html5/thumbnails/44.jpg)
Vergleich der Kurvendarstellungen
• Bei einer Beschränkung auf parametrisierte kubische Kurven können die Darstellungen ineinander konvertiert werden.
• Für die interne Darstellung können z.B. NURBS benutzt werden, während der Benutzer interaktiv die Kontrollpunkte und Tangentenvektoren von Bézier- oder hermiteschen Kurven manipuliert.
• Bei der Ausgabe über Postscript-Geräte müssen die Kurven auf jeden Fall in die Bézierform umgewandelt werden.
• Der Benutzer eines interaktiven CAD-Systems hat im allgemeinen mehrere Formen zu Auswahl, während intern in neueren Systemen meist die NURBS-Darstellung benutzt wird.
![Page 45: Graphische Datenverarbeitung](https://reader035.vdocuments.net/reader035/viewer/2022062519/56814e4e550346895dbbdac4/html5/thumbnails/45.jpg)
Flächen: Quadriken
• Die implizite Flächengleichung:f(x,y,z)= ax2 + by2 + c z2 + 2dxy +2eyz + 2fxz + 2gx +2hy +2jz +k =0
definiert die Familie der quadratischen Flächen oder Quadriken
• Einheitskugel um den Ursprung: a=b=c=-k=1 und d=e=f=g=h=j=0
• Ebene: a=b=c=d=e=f = 0
• Einfache Berechnung der Flächennormalen
• Einfache Berechnung von Schnittpunkten zweier Flächen
• Einfache Translation und Skalierung
![Page 46: Graphische Datenverarbeitung](https://reader035.vdocuments.net/reader035/viewer/2022062519/56814e4e550346895dbbdac4/html5/thumbnails/46.jpg)
Flächen
• Patches: größere Flächen werden aus kleinen Teilen (Segmente, Pflaster) zusammengesetzt.
• Kantenfreies Aneinanderfügen von Pflastern: beim Zusammensetzen muß ein kontinuierlicher Übergang erzeugt werden, ohne daß ein Knick in der Steigung senkrecht zur Randkurve benachbarter Pflaster auftritt
• Die Methoden zur Flächenbildung entsprechen den Methoden für Kurven.
• Flächendarstellungen:– Interpolation
– Bézier-Approximation
– B-Spline-Approximation
![Page 47: Graphische Datenverarbeitung](https://reader035.vdocuments.net/reader035/viewer/2022062519/56814e4e550346895dbbdac4/html5/thumbnails/47.jpg)
Paramaterdarstellung von Flächen
• Die Parameterdarstellung einer Fläche:
• Randkurven der Fläche: (0,v), (1,v), (u,0) und (u,1)
),(
),(
),(
),(
vuz
vuy
vux
vuq 10 u 10 v
![Page 48: Graphische Datenverarbeitung](https://reader035.vdocuments.net/reader035/viewer/2022062519/56814e4e550346895dbbdac4/html5/thumbnails/48.jpg)
![Page 49: Graphische Datenverarbeitung](https://reader035.vdocuments.net/reader035/viewer/2022062519/56814e4e550346895dbbdac4/html5/thumbnails/49.jpg)
Flächenapproximation mit Dreieckselementen
• Approximation einer Fläche durch ein Netz von Dreieckselementen.
• Punkte innerhalb der Dreiecksfläche durch Interpolation der Eckpunkte:F(u,v) = u p1 + v p2 + (1-u-v) p3 mit 0(u + v)1
• Eckpunkte:F(1,0) = p1
F(0,1) = p2 F(0,0) = p3
• Begrenzungslinien:Strecke p1p3: F(u,0) Strecke p2p3: F(0,v) Strecke p1p2: F(u,1-u)
![Page 50: Graphische Datenverarbeitung](https://reader035.vdocuments.net/reader035/viewer/2022062519/56814e4e550346895dbbdac4/html5/thumbnails/50.jpg)
Approximation durch Dreiecke
• Vorteile:– Alle Punkte des Dreiecks liegen auf einer Ebene -> einfache Operationen.
– Sehr einfache Flächendefinition. Operationen mit Flächen (z.B. Schnitte) sind durch einfache Algorithmen realisierbar.
• Nachteile:– Großer Speicherbedarf für das Dreiecksnetz
– Hoher Rechenaufwand der Flächenoperationen.
![Page 51: Graphische Datenverarbeitung](https://reader035.vdocuments.net/reader035/viewer/2022062519/56814e4e550346895dbbdac4/html5/thumbnails/51.jpg)
Flächenapproximation durch Vierecksflächen
• Verwendet ein Netz von Vierecksflächen
• Bilineare Interpolation zwischen den Eckpunkten:F(u,v) = (1-u)(1-v) p1 + (1-u)v p2 + u(1-v) p3 + u v p4 mit 0 u,v 1
• Eckpunkte:F(0,0) = p1, F(0,1) = p2
F(1,0) = p3, F(1,1) = p4
• Begrenzungslinien:p1 p2 : F(0,v)p1 p3 : F(u,0)p2 p4 : F(u,1)p3 p4 : F(1,v)
![Page 52: Graphische Datenverarbeitung](https://reader035.vdocuments.net/reader035/viewer/2022062519/56814e4e550346895dbbdac4/html5/thumbnails/52.jpg)
Flächenapproximation durch Viereckflächen
• Flächenelemente können gekrümmt sein, denn 4 Punkte müssen nicht in einer Ebene liegen
• Für eine gleich gute Approximation werden weniger Flächenelemente als bei den Dreieckselementen benötigt.
• Der Speicherbedarf nimmt ab
• Der Aufwand zur Berechnung von geometrischen Operationen nimmt zu.
![Page 53: Graphische Datenverarbeitung](https://reader035.vdocuments.net/reader035/viewer/2022062519/56814e4e550346895dbbdac4/html5/thumbnails/53.jpg)
Freiformflächen: Coons´sche Flächen
• Coons 1967: Methode zur Bildung von Freiformflächen:
• Zwischen 4 Randkurven R(u,0), R(u,1), R(0,v) und R(1,v) wird ein Flächenelement aufgespannt.
• Fläche F1(u,v): lineare Interpolation zwischen R(0,v) und R(1,v)F1(u,v) = (1-u) R(0,v) + u R(1,v)
• Fläche F2(u,v): lineare Interpolation zwischen R(u,0) und R(u,1)F2(u,v) = (1-v) R(u,0) + v R(u,1)
• Fläche G(u,v): bilineare Interpolation zwischen den EckpunktenG(u,v) = (1-u)(1-v) p1 + (1-u)v p2 + u(1-v) p3 + uv p4
• Coons´sche Fläche:C(u,v) = F1(u,v) + F2(u,v) - G(u,v)
![Page 54: Graphische Datenverarbeitung](https://reader035.vdocuments.net/reader035/viewer/2022062519/56814e4e550346895dbbdac4/html5/thumbnails/54.jpg)
Freiformflächen: Coons´sche Flächen
![Page 55: Graphische Datenverarbeitung](https://reader035.vdocuments.net/reader035/viewer/2022062519/56814e4e550346895dbbdac4/html5/thumbnails/55.jpg)
Freiformflächen: Bézier-Flächen
• Bézier-Flächen: Erweiterung des Konzeptes der Bézier-Kurven auf den Raum.
• Die Eckpunkte eines Flächenstücks liegen fest, während die anderen Punkte die Fläche nur approximieren.
• Durch eine (n+1)(m+1)-Matrix von Stützpunkten pi,j wird eine Bézier-Fläche aufgespannt durchF(u,v) = pi,jBi,n(u)Bj,m(v) mit 0 u,v 1 undBi,n (u) = ui(1-u)n-i Bj,m (v) = vj(1-v)m-j
• Bi,n (u) bzw. Bj,m (v) sind die Bernstein-Polynome.
• Bézier-Flächen sind das kartesische Produkt von Bézier-Kurven.
![Page 56: Graphische Datenverarbeitung](https://reader035.vdocuments.net/reader035/viewer/2022062519/56814e4e550346895dbbdac4/html5/thumbnails/56.jpg)
Freiformflächen: Tensorprodukt-Flächen
• Das gleiche Prinzip ist auf B-Splines und NURBS anwendbarF(u,v) = pi,jNi,n(u)Nj,m(v) mit 0 u,v 1
• Je nach Typ der Gewichtsfunktionen Nj,m(v) und Ni,n(u) ergeben sich B-Splines oder NURBS
• Gewichtsfunktionen Nj,m(v) und Ni,n(u) müssen nicht gleicher Ordnung sein
• B-Splines häufig verwendet, aber einfachere Flächen wie z.B. Zylinder können nicht genau nachgebildet werden
• NURBS: jede Fläche darstell-bar, aber hoher Rechenauf-wand
![Page 57: Graphische Datenverarbeitung](https://reader035.vdocuments.net/reader035/viewer/2022062519/56814e4e550346895dbbdac4/html5/thumbnails/57.jpg)
Koordinatensysteme und Transformationen: Homogene Koordinaten
• Das dreidimensionale Koordinatensystem (x, y, z) wird durch die Koordinate w erweitert
• Das Quadrupel (x, y, z, w) stellt die homogenen Koordinaten des Punkts P = (x/w, y/w, z/w) dar
• Standarddarstellung: w = 1, P=(x, y, z) => (x, y, z, 1)
• Überführen in die Standarddarstellung: Teile durch w
• Vorteile:– Transformationen (Drehung, Verschiebung, Skalierung) können als Matrix
dargestellt werden
– Hintereinanderausführung von beliebigen Transformationen durch Matrix-Multiplikation
![Page 58: Graphische Datenverarbeitung](https://reader035.vdocuments.net/reader035/viewer/2022062519/56814e4e550346895dbbdac4/html5/thumbnails/58.jpg)
Translation in Homogenen Koordinaten
• Verschiebung des Punktes P=(x, y, z) um den Vektor (a, b, c)
• mit P’= (x’, y’, z’): P’=P*T(a, b, c) wobei
• Hintereinanderausführung: T(a1, b1, c1)*T(a2, b2, c2) = T(a1+ a2, b1+ b2 , c1+ c2)
1
'
'
'
11
0100
0010
0001
*
1
z
y
x
cz
by
ax
cba
z
y
x
1
0100
0010
0001
),,(
cba
cbaT
![Page 59: Graphische Datenverarbeitung](https://reader035.vdocuments.net/reader035/viewer/2022062519/56814e4e550346895dbbdac4/html5/thumbnails/59.jpg)
Skalierung in Homogenen Koordinaten
• Skalierung des Punktes P=(x, y, z) um die Faktoren (a, b, c)
• mit P’= (x’, y’, z’): P’=P*S(a, b, c) wobei
• Hintereinanderausführung: S(a1, b1, c1)*S(a2, b2, c2) = S(a1*a2, b1*b2 , c1*c2)
1
'
'
'
11000
000
000
000
*
1
z
y
x
cz
by
ax
c
b
a
z
y
x
1000
000
000
000
),,(c
b
a
cbaS
![Page 60: Graphische Datenverarbeitung](https://reader035.vdocuments.net/reader035/viewer/2022062519/56814e4e550346895dbbdac4/html5/thumbnails/60.jpg)
Drehungen in homogenen Koordinaten: z-Achse
• Rechtshändiges Koordinatensystem:
• Drehung mit dem Winkel um die z-Achse gegen den Uhrzeigersinn: P’ = Rz(*P mit
1000
0100
00)cos()sin(
00)sin()cos(
)(
zR
)sin()cos(' yxx
)cos()sin(' yxy zz '
x
y
P
P´
![Page 61: Graphische Datenverarbeitung](https://reader035.vdocuments.net/reader035/viewer/2022062519/56814e4e550346895dbbdac4/html5/thumbnails/61.jpg)
Händigkeit
• Rechtshändiges Koordinatensystem:
• Linkshändiges Koordinatensystem:
1000
0100
00)cos()sin(
00)sin()cos(
)(
zR
1000
0100
00)cos()sin(
00)sin()cos(
)(
zR x
y
z
y
x
z
![Page 62: Graphische Datenverarbeitung](https://reader035.vdocuments.net/reader035/viewer/2022062519/56814e4e550346895dbbdac4/html5/thumbnails/62.jpg)
Drehungen in homogenen Koordinaten: y-Achse
• Drehung mit dem Winkel um die y-Achse: P’ = Ry(*P mit
1000
0)cos(0)sin(
0010
0)sin(0)cos(
)(
yR
)sin()cos(' zxx
)cos()sin(' zxz yy '
![Page 63: Graphische Datenverarbeitung](https://reader035.vdocuments.net/reader035/viewer/2022062519/56814e4e550346895dbbdac4/html5/thumbnails/63.jpg)
Drehungen in homogenen Koordinaten: x-Achse
• Drehung mit dem Winkel um die y-Achse: P’ = Rx(*P mit
1000
0)cos()sin(0
0)sin()cos(0
0001
)(
yR
xx '
)cos()sin(' zyz )sin()cos(' zyy
![Page 64: Graphische Datenverarbeitung](https://reader035.vdocuments.net/reader035/viewer/2022062519/56814e4e550346895dbbdac4/html5/thumbnails/64.jpg)
Kombination von Transformationen
• Transformationen können durch Hintereinanderausführung kombiniert werden.
• Beispiel: Rotation um mehrere Achsen: R = Rx . Ry . Rz
• Achtung: A.B ist nicht notwendigerweise gleich B.A.
• Soll die Rotation nicht um den Ursprung sondern um einen anderen Punkt stattfinden, so verschiebt man das Rotationszentrum in den Ursprung, führt die Rotation durch und verschiebt das Rotationszentrum wieder zurück:
P´ = T-1.R.T.P
• T-1 ist die inverse Transformationsmatrix:T . T-1 = 1
wobei 1 die Einheitsmatrix darstellt.
![Page 65: Graphische Datenverarbeitung](https://reader035.vdocuments.net/reader035/viewer/2022062519/56814e4e550346895dbbdac4/html5/thumbnails/65.jpg)
Transformation des KoordinatensystemsBeispiel: Drehungen um die z-Achse
• Drehung mit dem Winkel um die z-Achse gegen den Uhrzeigersinn: P’ = Rz(*P mit
1000
0100
00)cos()sin(
00)sin()cos(
)(
zR
)sin()cos(' yxx
)cos()sin(' yxy zz '
x
yP
x´
y´
![Page 66: Graphische Datenverarbeitung](https://reader035.vdocuments.net/reader035/viewer/2022062519/56814e4e550346895dbbdac4/html5/thumbnails/66.jpg)
Projektionen: Parallelprojektion
• Zur Darstellung müssen die dreidimensionalen Objekte auf die 2D-Ebene des Bildschirms projiziert werden.
• Senkrechte Projektion auf eine Ebene, die zu einer der Ebenen, die die Koordinatenachsen aufspannen, parallel ist.
• In Matrixschreibweise ergibt sich für die Abbildung auf die Ebene z = 0:
1000
0000
0010
0001
*
11
'
'
'
z
y
x
z
y
x
![Page 67: Graphische Datenverarbeitung](https://reader035.vdocuments.net/reader035/viewer/2022062519/56814e4e550346895dbbdac4/html5/thumbnails/67.jpg)
Perspektivische Projektion
• Perspektivische Projektion auf eine Ebene parallel zu den Koordinatenachsen (Blickpunkt A(0,0,-Z0), Ebene z=0):x´ = x/(1+z/Z0) y´ = y/(1+z/Z0) z´ = 0
1000
1000
0010
0001
*
11
'
'
'
0Zz
y
x
z
y
x
0
1
0
1
'
'
'
Z
z
y
x
z
y
x
1
0/1
/1
1
'
'
'
0
0
Zz
yZz
x
z
y
x
oder(/w)
![Page 68: Graphische Datenverarbeitung](https://reader035.vdocuments.net/reader035/viewer/2022062519/56814e4e550346895dbbdac4/html5/thumbnails/68.jpg)
Viewing Pipeline: Perspektivprojektion von Weltkoordinaten zum Schirmbild
![Page 69: Graphische Datenverarbeitung](https://reader035.vdocuments.net/reader035/viewer/2022062519/56814e4e550346895dbbdac4/html5/thumbnails/69.jpg)
Parallelprojektion von Weltkoordinaten zum Schirmbild
![Page 70: Graphische Datenverarbeitung](https://reader035.vdocuments.net/reader035/viewer/2022062519/56814e4e550346895dbbdac4/html5/thumbnails/70.jpg)
Viewing Pipeline
• Bis zu 5 Koordinatentransformationen hintereinanderViewing pipeline:– Composite modelling transformation
• Local modelling transformation• Global modelling transformation
World Coordinates WC– Optional: modelling clipping– View orientation transformation
View Reference Coordinates VRC– View mapping transformation – View Clip
Normalized Projection Coordinates NPC– Workstation transformation – Workstation clip
Device Coordinates DC
![Page 71: Graphische Datenverarbeitung](https://reader035.vdocuments.net/reader035/viewer/2022062519/56814e4e550346895dbbdac4/html5/thumbnails/71.jpg)
Viewing Pipeline: CMT
• Composite modelling transformation (CMT) -> World Coordinates (WC): Transformation von Modellkoordinaten in Weltkoordinaten, besteht aus zwei Teiltransformationen:– Local modelling transformation
Die lokalen Koordination eines Objekts werden transformiert (z.B. wird eine Diode in einer Schaltung zweimal eingebaut, einmal in der ursprünglichen Lage und einmal um 900 gedreht)
– Global modelling transformationAlle lokalen Objekte werden in Weltkoordinaten überführt.
• Optional: modelling clippingZur Reduzierung der Rechenzeit können Objekte eliminiert oder reduziert werden. Alles außerhalb des view volume wird entfernt.
![Page 72: Graphische Datenverarbeitung](https://reader035.vdocuments.net/reader035/viewer/2022062519/56814e4e550346895dbbdac4/html5/thumbnails/72.jpg)
Viewing Pipeline: Viewing Orientation Transformation
• Viewing orientation transformation (V0) -> View Reference Coordinates (VRC)Die drei Achsen u, v und n des VRC:
• Die Projektionsebene (view plane) ist immer parallel zur uv-Ebene.
• Ursprung: Blickreferenzpunkt (view reference point, VRP)
• n-Achse: view plane normal, VPN, Normalenvektor zur Projektionsebene (Verbindung Auge-VRP)
• view up vector (VUV): „oben“ auf dem Bildschirm
• v-Achse: Projektion des VUV-Vektors auf die Projektionsebene. (VPN und VUV dürfen niemals parallel sein)
• u-Achse: Kreuzprodukt von v und n
![Page 73: Graphische Datenverarbeitung](https://reader035.vdocuments.net/reader035/viewer/2022062519/56814e4e550346895dbbdac4/html5/thumbnails/73.jpg)
VPN und VUV
![Page 74: Graphische Datenverarbeitung](https://reader035.vdocuments.net/reader035/viewer/2022062519/56814e4e550346895dbbdac4/html5/thumbnails/74.jpg)
Viewing Mapping Transformation
• Viewing mapping transformation (Vm ) -> Normalized Projection Coordinates (NPC)
• Im NPC liegen alle sichtbaren Punkte im Einheitswürfel des ersten Oktanten (0<=x,y,z<=1)
• Benötigte Daten:– Entfernung der Projektionsebene auf der N-Achse (view plane distance) wird
häufig gleich Null gewählt, d.h. view plane und UV-Ebene fallen zusammen.
– Projection reference point, PRP. Wandert der PRP ins Unendliche, so erhalten wir eine Parallelprojektion.
– Front plane distance, back plane distance
• View Clip: Alles außerhalb des sichtbaren Kegelstumpfes entfernen.
![Page 75: Graphische Datenverarbeitung](https://reader035.vdocuments.net/reader035/viewer/2022062519/56814e4e550346895dbbdac4/html5/thumbnails/75.jpg)
View Mapping Transformation
![Page 76: Graphische Datenverarbeitung](https://reader035.vdocuments.net/reader035/viewer/2022062519/56814e4e550346895dbbdac4/html5/thumbnails/76.jpg)
Workstation Transformation and Clip
• Workstation transformation and clip (W) -> Device Coordinates (DC)2D-Transformation auf die wirklichen Gerätekoordinaten. Die Skalierung der Achsen kann bedingt durch die Hardware oder den Wünschen des Benutzers (Verzerrung, Scherung) durchaus verschieden sein.
• Vor jeder Transformation kann ein Clipping-Prozeß vorgenommen werden, bei der letzten Transformation auf das Workstation Window ist er unbedingt nötig.
![Page 77: Graphische Datenverarbeitung](https://reader035.vdocuments.net/reader035/viewer/2022062519/56814e4e550346895dbbdac4/html5/thumbnails/77.jpg)
Viewing Pipeline: Transformationsmatrix
• Die gesamte Transformationsmatrix ergibt sich zu
T = W Vm Vo CMT
![Page 78: Graphische Datenverarbeitung](https://reader035.vdocuments.net/reader035/viewer/2022062519/56814e4e550346895dbbdac4/html5/thumbnails/78.jpg)
Größe eines Objekts auf der Projektionsebene
• Die Größe eines Objekts auf der Projektionsebene ist von den relativen Positionen des Fluchtpunkts (PRP, projection reference point), des Objekts und der Projektionsebene abhängig.
![Page 79: Graphische Datenverarbeitung](https://reader035.vdocuments.net/reader035/viewer/2022062519/56814e4e550346895dbbdac4/html5/thumbnails/79.jpg)
Double Buffering
• Zwei Frame-Buffer zur Darstellung von bewegten Bildern:
• Ein Frame-Buffer wird zur Bilddarstellung benutzt
• Im Hintergrund wird das nächste Bild berechnet und im 2. Frame Buffer abgelegt
• Nach Ende der Rechnung wird der zweite Frame-Buffer der aktive.
![Page 80: Graphische Datenverarbeitung](https://reader035.vdocuments.net/reader035/viewer/2022062519/56814e4e550346895dbbdac4/html5/thumbnails/80.jpg)
Ablauf der Bildschirmdarstellung