PDA

View Full Version : [FRAGE] - Bsp2 - Clipping-Reihenfolge


Bug
15-10-2004, 01:08
Muß man die beim Beispiel 2 vorgegebene Clipping-Reihenfolge mit LEFT-RIGHT-BOTTOM-TOP einhalten?
Oder darf man diese auch beliebig ändern (z.B.: LEFT-BOTTOM-RIGHT-TOP)?

Denn wenn ich nämlich die vorgegebene Reihenfolge einhalte, erhalte ich beim darstellen des Objekts "komischesPolygon" am rechten Rand eine Linie, obwohl sie nicht dargestellt werden sollte, da das gesamte Polygon außerhalb des Canvas liegt.
Nachdem ich aber den Algorithmus "händisch" nachvollzogen haben bin ich genau zum selben Ergebnis gekommen.
Ändere ich aber die Reihenfolge des Clipping (LEFT-BOTTOM-RIGHT-TOP) wird das gesamte Polygon augeblendet (so wie es eigentlich sein sollte).

Kann bzw. darf ich nun die Reihenfolge ändern, oder bin ich einem grundlegenden Denkfehler erlegen?

thebigMuh
15-10-2004, 01:46
Ändere ich aber die Reihenfolge des Clipping (LEFT-BOTTOM-RIGHT-TOP) wird das gesamte Polygon augeblendet (so wie es eigentlich sein sollte).


Bleibt dann vielleicht bei einem anders gedrehten L auf einer Kante eine Linie übrig :) ?

Ciao, ¡muh!

Bug
15-10-2004, 02:05
Bleibt dann vielleicht bei einem anders gedrehten L auf einer Kante eine Linie übrig :) ?
Wenn dieses Polygon anderes gedreht würde, würde nach meiner Überlegung nach tatsächlich eine andere Linie übrigbleiben :ahhh: .

Mach ich nun einen Denkfehler oder hat das so seine Richtigkeit, daß eine Linie übrig bleibt, obwohl das gesamte Polygon außerhalb liegt??:confused:

thebigMuh
15-10-2004, 13:34
Das hat so schon seine Richtigkeit.

Bei konkaven Polygonen kann es dazu kommen, daß extra Linien erzeugt werden (steht ja so oder so ähnlich dort). Nicht nur wenn ein Teil des Polygons ins Bild hängt, sondern auch wenn sich das Polygon so um das Fenster biegt, wie es bei dem L hier der Fall ist. Wenn du es z.B. entlang der X-Achse spiegeln würdest, sodaß es wie ein richtig geschriebenes "L" aussieht, und dann rechts unten außerhalb des Viewports zeichnest, wird keine Linie übrigbleiben.

Ciao, ¡muh!