80
Graphische Datenverarbeitung Dr. Markus Heitz

Graphische Datenverarbeitung Dr. Markus Heitz. Hinweise Email: [email protected] Informationsmaterial, Powerpoint-Präsentation: mheitz

Embed Size (px)

Citation preview

Page 1: Graphische Datenverarbeitung Dr. Markus Heitz. Hinweise Email: mheitz@ba-stuttgart.de Informationsmaterial, Powerpoint-Präsentation: mheitz

Graphische Datenverarbeitung

Dr. Markus Heitz

Page 2: Graphische Datenverarbeitung Dr. Markus Heitz. Hinweise Email: mheitz@ba-stuttgart.de Informationsmaterial, Powerpoint-Präsentation: mheitz

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 Dr. Markus Heitz. Hinweise Email: mheitz@ba-stuttgart.de Informationsmaterial, Powerpoint-Präsentation: mheitz

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 Dr. Markus Heitz. Hinweise Email: mheitz@ba-stuttgart.de Informationsmaterial, Powerpoint-Präsentation: mheitz

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 Dr. Markus Heitz. Hinweise Email: mheitz@ba-stuttgart.de Informationsmaterial, Powerpoint-Präsentation: mheitz

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 Dr. Markus Heitz. Hinweise Email: mheitz@ba-stuttgart.de Informationsmaterial, Powerpoint-Präsentation: mheitz

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 Dr. Markus Heitz. Hinweise Email: mheitz@ba-stuttgart.de Informationsmaterial, Powerpoint-Präsentation: mheitz
Page 8: Graphische Datenverarbeitung Dr. Markus Heitz. Hinweise Email: mheitz@ba-stuttgart.de Informationsmaterial, Powerpoint-Präsentation: mheitz

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 Dr. Markus Heitz. Hinweise Email: mheitz@ba-stuttgart.de Informationsmaterial, Powerpoint-Präsentation: mheitz

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 Dr. Markus Heitz. Hinweise Email: mheitz@ba-stuttgart.de Informationsmaterial, Powerpoint-Präsentation: mheitz

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 Dr. Markus Heitz. Hinweise Email: mheitz@ba-stuttgart.de Informationsmaterial, Powerpoint-Präsentation: mheitz

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 Dr. Markus Heitz. Hinweise Email: mheitz@ba-stuttgart.de Informationsmaterial, Powerpoint-Präsentation: mheitz

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 Dr. Markus Heitz. Hinweise Email: mheitz@ba-stuttgart.de Informationsmaterial, Powerpoint-Präsentation: mheitz

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 Dr. Markus Heitz. Hinweise Email: mheitz@ba-stuttgart.de Informationsmaterial, Powerpoint-Präsentation: mheitz

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 Dr. Markus Heitz. Hinweise Email: mheitz@ba-stuttgart.de Informationsmaterial, Powerpoint-Präsentation: mheitz

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 Dr. Markus Heitz. Hinweise Email: mheitz@ba-stuttgart.de Informationsmaterial, Powerpoint-Präsentation: mheitz

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 Dr. Markus Heitz. Hinweise Email: mheitz@ba-stuttgart.de Informationsmaterial, Powerpoint-Präsentation: mheitz

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 Dr. Markus Heitz. Hinweise Email: mheitz@ba-stuttgart.de Informationsmaterial, Powerpoint-Präsentation: mheitz

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 Dr. Markus Heitz. Hinweise Email: mheitz@ba-stuttgart.de Informationsmaterial, Powerpoint-Präsentation: mheitz

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 Dr. Markus Heitz. Hinweise Email: mheitz@ba-stuttgart.de Informationsmaterial, Powerpoint-Präsentation: mheitz

Bézier-Splines

• Splines deren Segmente aus Bézier-Polynomen besteht.

• Meist kubische Bézierkurven.

Page 21: Graphische Datenverarbeitung Dr. Markus Heitz. Hinweise Email: mheitz@ba-stuttgart.de Informationsmaterial, Powerpoint-Präsentation: mheitz

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 Dr. Markus Heitz. Hinweise Email: mheitz@ba-stuttgart.de Informationsmaterial, Powerpoint-Präsentation: mheitz

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 Dr. Markus Heitz. Hinweise Email: mheitz@ba-stuttgart.de Informationsmaterial, Powerpoint-Präsentation: mheitz

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 Dr. Markus Heitz. Hinweise Email: mheitz@ba-stuttgart.de Informationsmaterial, Powerpoint-Präsentation: mheitz

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 Dr. Markus Heitz. Hinweise Email: mheitz@ba-stuttgart.de Informationsmaterial, Powerpoint-Präsentation: mheitz

B-Splines: Gewichtsfunktionen

Page 26: Graphische Datenverarbeitung Dr. Markus Heitz. Hinweise Email: mheitz@ba-stuttgart.de Informationsmaterial, Powerpoint-Präsentation: mheitz

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 Dr. Markus Heitz. Hinweise Email: mheitz@ba-stuttgart.de Informationsmaterial, Powerpoint-Präsentation: mheitz

Gewichtsfunktionen der quadratischen B-Spline-Approximation

Page 28: Graphische Datenverarbeitung Dr. Markus Heitz. Hinweise Email: mheitz@ba-stuttgart.de Informationsmaterial, Powerpoint-Präsentation: mheitz

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 Dr. Markus Heitz. Hinweise Email: mheitz@ba-stuttgart.de Informationsmaterial, Powerpoint-Präsentation: mheitz

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 Dr. Markus Heitz. Hinweise Email: mheitz@ba-stuttgart.de Informationsmaterial, Powerpoint-Präsentation: mheitz

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 Dr. Markus Heitz. Hinweise Email: mheitz@ba-stuttgart.de Informationsmaterial, Powerpoint-Präsentation: mheitz

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 Dr. Markus Heitz. Hinweise Email: mheitz@ba-stuttgart.de Informationsmaterial, Powerpoint-Präsentation: mheitz

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 Dr. Markus Heitz. Hinweise Email: mheitz@ba-stuttgart.de Informationsmaterial, Powerpoint-Präsentation: mheitz

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 Dr. Markus Heitz. Hinweise Email: mheitz@ba-stuttgart.de Informationsmaterial, Powerpoint-Präsentation: mheitz

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 Dr. Markus Heitz. Hinweise Email: mheitz@ba-stuttgart.de Informationsmaterial, Powerpoint-Präsentation: mheitz

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 Dr. Markus Heitz. Hinweise Email: mheitz@ba-stuttgart.de Informationsmaterial, Powerpoint-Präsentation: mheitz

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 Dr. Markus Heitz. Hinweise Email: mheitz@ba-stuttgart.de Informationsmaterial, Powerpoint-Präsentation: mheitz

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 Dr. Markus Heitz. Hinweise Email: mheitz@ba-stuttgart.de Informationsmaterial, Powerpoint-Präsentation: mheitz

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 Dr. Markus Heitz. Hinweise Email: mheitz@ba-stuttgart.de Informationsmaterial, Powerpoint-Präsentation: mheitz

URBS

• Variation eines Gewichts

P0

P1P2

0.10.25

0.5 0.751

1.5

58

Page 40: Graphische Datenverarbeitung Dr. Markus Heitz. Hinweise Email: mheitz@ba-stuttgart.de Informationsmaterial, Powerpoint-Präsentation: mheitz

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 Dr. Markus Heitz. Hinweise Email: mheitz@ba-stuttgart.de Informationsmaterial, Powerpoint-Präsentation: mheitz

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 Dr. Markus Heitz. Hinweise Email: mheitz@ba-stuttgart.de Informationsmaterial, Powerpoint-Präsentation: mheitz

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 Dr. Markus Heitz. Hinweise Email: mheitz@ba-stuttgart.de Informationsmaterial, Powerpoint-Präsentation: mheitz

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 Dr. Markus Heitz. Hinweise Email: mheitz@ba-stuttgart.de Informationsmaterial, Powerpoint-Präsentation: mheitz

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 Dr. Markus Heitz. Hinweise Email: mheitz@ba-stuttgart.de Informationsmaterial, Powerpoint-Präsentation: mheitz

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 Dr. Markus Heitz. Hinweise Email: mheitz@ba-stuttgart.de Informationsmaterial, Powerpoint-Präsentation: mheitz

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 Dr. Markus Heitz. Hinweise Email: mheitz@ba-stuttgart.de Informationsmaterial, Powerpoint-Präsentation: mheitz

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 Dr. Markus Heitz. Hinweise Email: mheitz@ba-stuttgart.de Informationsmaterial, Powerpoint-Präsentation: mheitz
Page 49: Graphische Datenverarbeitung Dr. Markus Heitz. Hinweise Email: mheitz@ba-stuttgart.de Informationsmaterial, Powerpoint-Präsentation: mheitz

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 Dr. Markus Heitz. Hinweise Email: mheitz@ba-stuttgart.de Informationsmaterial, Powerpoint-Präsentation: mheitz

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 Dr. Markus Heitz. Hinweise Email: mheitz@ba-stuttgart.de Informationsmaterial, Powerpoint-Präsentation: mheitz

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 Dr. Markus Heitz. Hinweise Email: mheitz@ba-stuttgart.de Informationsmaterial, Powerpoint-Präsentation: mheitz

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 Dr. Markus Heitz. Hinweise Email: mheitz@ba-stuttgart.de Informationsmaterial, Powerpoint-Präsentation: mheitz

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 Dr. Markus Heitz. Hinweise Email: mheitz@ba-stuttgart.de Informationsmaterial, Powerpoint-Präsentation: mheitz

Freiformflächen: Coons´sche Flächen

Page 55: Graphische Datenverarbeitung Dr. Markus Heitz. Hinweise Email: mheitz@ba-stuttgart.de Informationsmaterial, Powerpoint-Präsentation: mheitz

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 Dr. Markus Heitz. Hinweise Email: mheitz@ba-stuttgart.de Informationsmaterial, Powerpoint-Präsentation: mheitz

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 Dr. Markus Heitz. Hinweise Email: mheitz@ba-stuttgart.de Informationsmaterial, Powerpoint-Präsentation: mheitz

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 Dr. Markus Heitz. Hinweise Email: mheitz@ba-stuttgart.de Informationsmaterial, Powerpoint-Präsentation: mheitz

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 Dr. Markus Heitz. Hinweise Email: mheitz@ba-stuttgart.de Informationsmaterial, Powerpoint-Präsentation: mheitz

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 Dr. Markus Heitz. Hinweise Email: mheitz@ba-stuttgart.de Informationsmaterial, Powerpoint-Präsentation: mheitz

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

Page 61: Graphische Datenverarbeitung Dr. Markus Heitz. Hinweise Email: mheitz@ba-stuttgart.de Informationsmaterial, Powerpoint-Präsentation: mheitz

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 Dr. Markus Heitz. Hinweise Email: mheitz@ba-stuttgart.de Informationsmaterial, Powerpoint-Präsentation: mheitz

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 Dr. Markus Heitz. Hinweise Email: mheitz@ba-stuttgart.de Informationsmaterial, Powerpoint-Präsentation: mheitz

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 Dr. Markus Heitz. Hinweise Email: mheitz@ba-stuttgart.de Informationsmaterial, Powerpoint-Präsentation: mheitz

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 Dr. Markus Heitz. Hinweise Email: mheitz@ba-stuttgart.de Informationsmaterial, Powerpoint-Präsentation: mheitz

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

Page 66: Graphische Datenverarbeitung Dr. Markus Heitz. Hinweise Email: mheitz@ba-stuttgart.de Informationsmaterial, Powerpoint-Präsentation: mheitz

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 Dr. Markus Heitz. Hinweise Email: mheitz@ba-stuttgart.de Informationsmaterial, Powerpoint-Präsentation: mheitz

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 Dr. Markus Heitz. Hinweise Email: mheitz@ba-stuttgart.de Informationsmaterial, Powerpoint-Präsentation: mheitz

Viewing Pipeline: Perspektivprojektion von Weltkoordinaten zum Schirmbild

Page 69: Graphische Datenverarbeitung Dr. Markus Heitz. Hinweise Email: mheitz@ba-stuttgart.de Informationsmaterial, Powerpoint-Präsentation: mheitz

Parallelprojektion von Weltkoordinaten zum Schirmbild

Page 70: Graphische Datenverarbeitung Dr. Markus Heitz. Hinweise Email: mheitz@ba-stuttgart.de Informationsmaterial, Powerpoint-Präsentation: mheitz

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 Dr. Markus Heitz. Hinweise Email: mheitz@ba-stuttgart.de Informationsmaterial, Powerpoint-Präsentation: mheitz

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 Dr. Markus Heitz. Hinweise Email: mheitz@ba-stuttgart.de Informationsmaterial, Powerpoint-Präsentation: mheitz

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 Dr. Markus Heitz. Hinweise Email: mheitz@ba-stuttgart.de Informationsmaterial, Powerpoint-Präsentation: mheitz

VPN und VUV

Page 74: Graphische Datenverarbeitung Dr. Markus Heitz. Hinweise Email: mheitz@ba-stuttgart.de Informationsmaterial, Powerpoint-Präsentation: mheitz

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 Dr. Markus Heitz. Hinweise Email: mheitz@ba-stuttgart.de Informationsmaterial, Powerpoint-Präsentation: mheitz

View Mapping Transformation

Page 76: Graphische Datenverarbeitung Dr. Markus Heitz. Hinweise Email: mheitz@ba-stuttgart.de Informationsmaterial, Powerpoint-Präsentation: mheitz

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 Dr. Markus Heitz. Hinweise Email: mheitz@ba-stuttgart.de Informationsmaterial, Powerpoint-Präsentation: mheitz

Viewing Pipeline: Transformationsmatrix

• Die gesamte Transformationsmatrix ergibt sich zu

T = W Vm Vo CMT

Page 78: Graphische Datenverarbeitung Dr. Markus Heitz. Hinweise Email: mheitz@ba-stuttgart.de Informationsmaterial, Powerpoint-Präsentation: mheitz

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 Dr. Markus Heitz. Hinweise Email: mheitz@ba-stuttgart.de Informationsmaterial, Powerpoint-Präsentation: mheitz

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 Dr. Markus Heitz. Hinweise Email: mheitz@ba-stuttgart.de Informationsmaterial, Powerpoint-Präsentation: mheitz

Ablauf der Bildschirmdarstellung