View Full Version : Ausarbeitungen vergleichen
Hi!
Wer macht die Prüfung im Jänner Termin und hat Lust, ausgearbeitete Beispiele der alten Prüfungen mit mir zu vergleichen/zu diskutieren/auszuarbeiten?
Liebe Grüße
-Markus, der schon einiges gelöst hat...
Kuschelmaus
17-01-2003, 22:15
ich bin zwar erst am anfangen, aber die idee is net schlecht. ich werd mich melden sobald ich mehr hab, ok?
bis dahin hätt ich nur eine bitte. ich seh mich nämlich bei den beispielen mit dem z-buffer nicht ganz aus. ich weiß nicht genau, wie ich mir die z-werte der punkte zwischen den eckpunkten ausrechne. könntest du mir das kurz schildern? forum oder email, is egal.
danke im voraus! ;)
kenn mich da bei den po-bsp auch überhaupt nicht aus!
kann irgendwer kurz erklären, wie man das überhaupt macht???
ich mein, die theorie is mir ja klar, is auch recht einfach: immer die z-werte vergleichen
aber wie lös ich das bsp, wenn ich nur eckpunkte von polygonen in zahlen gegeben hab...kann ich ja nichtmal vorstellen welche flächen die bedecken, wo sie sich überschneiden usw...
p1 = (16, 10, 10)
ox
xxxxx
xxxxxxxx
xxxxxxxxxxx
xxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxx
oxxxxxxxxxxxxxxxxxxx
p2 = (10, 16, 22) xxxxxxxxxxxxxxx
xxxxxxxxxx
xxxxo
p3 = (35, 19, 37)
pi = (xi, yi, zi)
einfach linear über die y achse interpolieren:
z12inc = (z2 - z1) / (y2 - y1) = (22 - 10) / (16 - 10) = +2
z13inc = (z3 - z1) / (y3 - y1) = (37 - 10) / (19 - 10) = +3
z23inc = (z3 - z2) / (y3 - y2) = (37 - 22) / (19 - 16) = +5
daher die z-werte:
10 ox 10
12 xxxxx 13
14 xxxxxxxx 16
16 xxxxxxxxxxx 19
18 xxxxxxxxxxxxxx 22
20 xxxxxxxxxxxxxxxxx 25
22 oxxxxxxxxxxxxxxxxxxx 28
27 xxxxxxxxxxxxxxx 31
32 xxxxxxxxxx 34
37 xxxxo 37
okay kenn mich schon aus
danke!!
Kuschelmaus
18-01-2003, 22:32
also nach dem hab ichs so verstanden:
ich rechne ma die z-werte der kanten mittels linearer interpolation aus. dazu nehm ich immer die vektoren der eckpunkte und setz in die formel ein. und wenn mir bei der lin.int. z.b. 2 rauskommt, dann heißt das, das die werte auf der kante immer um zwei größer werden bis zum nächsten eckpunkt
stimmt das soweit? ;)
jetzt is ma nur eins noch nicht klar: ich hab jetzt zwar die z-werte der kanten, aber brauch ich nicht auch die z-werte der punkte der fläche dazwischen?
Könnte bitte jemand erklären was das Z-Buffer mit der Interpolation zu tun hat?
@ heavy: Nichts! Richtig müßte man es mit den Formeln Buch S. 308 machen (A,B,C) und dann
ausgehend von y die z-werte von y-1 berechnen bzw. ausgehend von x jene von x+1. Die Formeln sind in der Foliensammlung.
Ist nur zu viel zu rechnen, und da die Ebenen in den Beispielen ja keine verdrehten Ebenen sind, sondern bloss Rechtecke, kann man die auch interpolieren. So wie die angegeben sind, sind entweder die y, y-1..y-? Werte konstant, oder aber jene der x, x+1...x+?.
Den jeweils anderen bekommst durch überlegen, in der Angabe hast Du dann (für y) z.b. y=-2 und y-4 = 6 gegeben. Damit sich das ausgeht, kann nur y-1=0, y-2=2, y-3=4, (y-4=6) sein.
@kuschelmaus:
Die jeweiligen x+? entsprachen dann diesem ersten x in der jeweiligen Zeile.
Oder ist jemand anderer Meinung, hab's mir schließlich auch nur selbst überlegt und nicht von irgendwem vorgesetzt bekommen.
Liebe Grüße
-Markus
Guinness
22-01-2003, 22:12
der tipp mit dem interpolieren war echt gut, danke! ich depp hab das zuerst mit dem bresenham gerastert, hat etwas gedauert - war aber eine gute übung... :-)
angenommen, die z-koordinaten von den eckpunkten eines dreiecks sind alle drei unterschiedlich, dann kann man mit der interpolation eh nichts mehr anfangen, oder? ich mein, die punkte an den kanten kann man damit schon ausrechnen, aber die punkte, die in der fläche liegen nicht, oder?
ich hab mein mathebuch aus der 6. klasse ausgegraben, da steht drin, wie man von einer parameterdarstellung auf die ebenengleichung kommt. und damit kann man dann die formel von den folien verwenden.
wenn's wer wissen mag, sagt mir bescheid, dann tipp ich das beispiel aus meinem mathebuch ab und postes es hier.
ciao, guinness!
ich glaub man sollte auf alle fälle vorbereitet sein
@Guinness
ich fände es gut wenn du so ein beispiel posten könntest
mfg wolk
Guinness
23-01-2003, 01:33
Also, hier das angekündigte Beispiel:
Angenommen, wir haben 3 Punkte P, Q und R. Diese spannen eine Ebene auf.
P = (2| 1| 0)
Q = (4|-2|-1)
R = (3| 3|-4)
Ebene in Parameterdarstellung:
e: X = P + s * PQ + t * PR
( 2) ( 1)
PQ = Q - P = (-3) PR = R - P = ( 2)
(-1) (-4)
(2) ( 2) ( 1)
e: X = (1) + s * (-3) + t * ( 2)
(0) (-1) (-4)
Ebene in parameterfreier Darstellung:
e: ax + by + cz = d (<-- Ebenenformel korrigiert am 23-01-2003 um 08:39)
I: x = 2 + 2s + 1t
II: y = 1 - 3s + 2t
III: z = 0 - 1s - 4t
Parameter eliminieren:
(a) 4* I + III: 4x + z = 8 + 7s
(b) 2*II + III: 2y + z = 2 - 7s
(a+b) e: 4x + 2y + 2z = 10
vereinfacht: 2x + y + z = 5
Voilá. Jetzt kann man die Formel von den Folien verwenden.
z wird ausgedrückt durch Umformung der Ebenenformel:
z = 5 - 2x - y
Wenn man hier die x- und y-Koordinaten eines Punktes der Ebene einsetzt, erhält man die z Koordinate.
Ich hoffe, das hat ein wenig geholfen beim z-Puffer Problem.
Ciao, Guinness!
Könntest du mir erlären wo du was in welche Formel eingesetzt hast...?
Wenn ich mich nicht irre lautet sie: z=(-Ax-By-D)/C
Guinness
23-01-2003, 09:34
Original geschrieben von Heavy
Könntest du mir erlären wo du was in welche Formel eingesetzt hast...?
Wenn ich mich nicht irre lautet sie: z=(-Ax-By-D)/C
ja, und genau das hab ich auch gemacht. Aber leider bin ich ein bissi ein Hirsch und hab die Formel falsch angeschrieben... Sorry!
Die allgemeine Gleichung der Ebene im Raum heißt richtig:
e: ax + by + cz = d oder
Ax + By + Cz - D = 0
Im Falle des Beispieles bedeutet dies:
e: 2x + y + z = 5
A = 2
B = 1
C = 1
D = 5
Eine Umformung der Ebenenformel (ich bringe alles außer Cz auf die rechte Seite und dividiere durch C) ergibt:
z = (- Ax - By - D) / C
eingesetzt ist dies dann:
z = (- 2x - 1y - 5) / 1
... was leicht umgeformt, aber ident mit:
z = 5 - 2x - y
ist.
So, ich hoffe, das war jetzt etwas besser zu verstehen!
Ciao, Guinness!
Danke für deine Hilfe!
Hab immer noch blöde Fragen..... und-... wie zeichne ich das Dreieck in das Koordinatensys ein?
Was fang ich jetzt mit den z-Werten an?
Ich glaub ich muß mir das Buch kaufen , mit den Folien kann man echt nix anfangen.... :rolleyes:
Guinness
23-01-2003, 17:51
Original geschrieben von Heavy
wie zeichne ich das Dreieck in das Koordinatensys ein?
Ich würde sagen, bei den Beispielen, die zur Prüfung kommen, brauchst du nicht viel nachdenken. Das schlimmste Szenario sind 45°-Kanten von Polygonen. Und 45° Geraden kann man ja ganz locker als Diagonale einzeichnen. Sollten wirklich andere Steigungen gefragt werden, bleibt einem nichts anderes über, als die Strecke mit dem DDA oder Bresenham zu rastern.
Was fang ich jetzt mit den z-Werten an?[/B]
Du brauchst die zwei Raster, die bei der Angabe zu den z-Puffer Beispielen dabei sind. Ein Raster ist für das Bild und der zweite dient als z-Puffer.
Den z-Puffer muss man am Anfang auf minus Unendlich setzen. Danach schnappt man sich das erste Polygon und vergleicht jeden Punkt davon mit der entsprechenden Koordinate des z-Puffers.
Ist die z-Koordinate deines Punktes größer als der im z-Puffer gespeicherte Wert, dann ersetzt du den Wert im z-Puffer durch die z-Koordinate deines Punktes. Dieser Punkt ist dann am nähesten beim Betrachter und daher im Bild-Raster sichtbar. Das machst solange, bist du alle Punkte deines Polygons durch hast und danach gehts analog mit dem nächsten Polygon weiter.
Achtung: Sind z-Koordinate eines Punktes und der Wert im z-Puffer gleich groß, dann wird nicht ersetzt!
Ich hoff, ich hab mich einigermaßen klar ausgedrückt! :-)
Ciao, Guinness!
vBulletin® v3.7.1, Copyright ©2000-2008, Jelsoft Enterprises Ltd.