Diskussion:Algorithmus von Cohen-Sutherland

aus Wikipedia, der freien Enzyklopädie
Letzter Kommentar: vor 6 Jahren von Lantani in Abschnitt Und was, wenn die Linie ganz außerhalb liegt?
Zur Navigation springen Zur Suche springen

Der von diesem Artikel verlinkte englische Artikel zum Algorithmus von Cohen und Sutherland zeigt eine andere, etwas schwieriger, aber auch korrekte Vorgehensweise für diesen Algorithmus. -- Benutzer:141.48.5.71 nachgetragen

meinte den auf helsinki.fi, den anderen auf die deutsche seite hab ich gerade wieder eingefügt. -- 10:51, 10. Nov 2005 (CET)

Ist das wirklich Cohan-Sutherland???

[Quelltext bearbeiten]

Ich kenne den Algorithmus _etwas_ anders: die Divide-and-Conquer- Geschichte am Ende ist mir nicht nur bisher fremd, sie ist obendrein auch noch so sinnlos, dass ich mir nicht vorstellen kann, das Sutherland sie so haben wollte. Ein Schnittpunkt- Test mit den Rechteck- Kanten geht in O(1), ist robust (was ist hier bitte bei halben Pixeln?) und unabhängig von der Auflösung (wie bitte will ich wissen, wann ein Liniensegment "einen Pixel lang" ist???). Zitat außerdem aus angegebener Quelle: "If the line cannot be trivally accepted or rejected, *an intersection of the line with a window edge is determined* and the trivial reject/accept test is repeated"

Sorry, ich habe es direkt geändert 88.72.34.86 09:09, 3. Dez 2005 (CET)

Es gab auch Implementierungen mit dem oben beschriebenen Verfahren der sukzessiven Halbierung der Linien, insbesondere wenn die Maschinen nicht dividieren und multiplizieren konnten, und nur in der Lage waren die Linie zu halbieren. Man hat die Linien so lange halbiert bis die Teilstücke entweder ganz innerhalb oder ganz außerhalb des Rechtecks waren. Durch Verwerfen der außerhalb liegenden Teile blieb die geclippte Linie übrig. Das 'Sorry' wäre also nicht wirklich nötig. -- PANAMATIK 16:37, 4. Mär 2006 (CET)

Kategorie verfeinern

[Quelltext bearbeiten]

Ich habe den Algorithmus in Kategorie:Algorithmus (Computergrafik) einsortiert. Um ihn nicht doppelt zu nennen könnte man ihn jetzt aus Kategorie:Algorithmus herausnehmen, oder gibt es noch andere Anwendungen für diesen Clipping-Algorithmus außer in der Computergrafik ?

Bei dem Weg habe ich auch die Code-Box um die Implementierung wieder geschlossen - hier fehlten wohl ein paar Leerzeichen. -- WvBraun 10:23, 30. Mär. 2007 (CEST)Beantworten

Frage zu den Koordinaten des Rechtecks

[Quelltext bearbeiten]

Leider ist in dem Artikel nicht erwähnt, ob der Algorithmus voraussetzt, dass die Koordinaten des Rechtecks größer oder gleich 0 sein müssen. Oder funktioniert Cohen-Sutherland auch noch, wenn gegen ein Rechteck mit negativen Koordinaten geclippt wird? --88.73.61.248 02:24, 23. Dez. 2010 (CET)Beantworten

So wie ich den Cohen-Sutherland-Algorithmus verstehe, sind positive Koordinaten für das Rechteck nicht erforderlich. Ich habe ein paar Beispiele mit negativen Koordinaten durchgerechnet und bin jedesmal zum korrekten Ergebnis gelangt. --Spuerhund 20:38, 23. Dez. 2010 (CET)Beantworten

Muss das wirklich sein? Hier 300 Zeilen pseudocode reinzuklatschen ist nicht wirklich sinnvoll... (nicht signierter Beitrag von 92.224.205.79 (Diskussion) 18:32, 18. Jul 2011 (CEST))

... Ist mindestens eines dieser Flags bei beiden Endpunkten gesetzt, so befindet sich die gesamte Linie außerhalb des Rechtecks und die Linie braucht nicht gezeichnet zu werden. ...

--> Stimmt doch so nicht?!? wenn z.B. ein Punkt innerhalb liegt also 0000 und einer außerhalb (z.B. 1001) dann würde ein flag gesetzt sein, aber diese Linie liegt nicht komplett außerhalb!!!

Und was, wenn die Linie ganz außerhalb liegt?

[Quelltext bearbeiten]

Beispiel: In der Zeichnung habe die linke obere Ecke die Koordinaten (0; 30) und die rechte untere (30; 0). Das Fenster ist (10 … 20; 10 … 20). Die zu zeichnende Linie gehe von (1; 9) mit dem Flag 0101 nach (11; 29) mit dem Flag 1000. Die Flags der beiden Endpunkte sind disjunkt, und trotzdem schneidet die Linie das Fenster nicht.

Bei der Darstellung in der englischen Wikipedia wird zuerst ein Schnittpunkt mit einem der verlängerten Ränder (also der ganzen Gerade, von der ein Teil Rand des Fensters ist) ermittelt, z.B. hier (10; 27) mit dem Flag 1000. Dann wird mit den neuen Flags festgestellt, dass alles weggefallen ist. Im hiesigen Artikel ist nicht zu sehen, wie man da aus der verzweifelten Suche nach einem Punkt der Linie auf dem Rand des Fensters rauskommt. Vielleicht ists im Code richtig, aber den sollte der Leser nicht durchfieseln müssen, um zu sehen, wie es funktioniert. --Lantani (Diskussion) 12:11, 1. Mär. 2018 (CET)Beantworten