Der Linienalgorithmus von Xiaolin Wu

Der Linienalgorithmus von Xiaolin Wu ist ein Algorithmus für das Linienantialiasing, das im Artikel An Efficient Antialiasing Technique im Problem im Juli 1991 der Computergrafik, sowie im Artikel Fast Antialiasing im Problem im Juni 1992 der Zeitschrift von Dr Dobb präsentiert wurde.

Der Algorithmus von Bresenham zieht Linien äußerst schnell, aber er führt Antialiasing nicht durch. Außerdem kann es nicht den Fall behandeln, wo die Linienendpunkte genau auf Punkten der ganzen Zahl des Pixel-Bratrostes nicht liegen. Eine naive Annäherung an das Antialiasing die Linie würde äußerst viel Zeit in Anspruch nehmen, aber der Algorithmus von Wu ist ziemlich schnell (ist es noch langsamer als Bresenham, obwohl). Die Basis des Algorithmus soll Paare von Pixeln anziehen, die auf der Linie rittlings sitzen, die gemäß der Nähe gefärbt ist. Pixel an den Linienenden werden getrennt behandelt. Linien weniger als ein Pixel sollten lange als ein spezieller Fall behandelt werden.

Eine Erweiterung auf den Algorithmus für die Kreiszeichnung wurde von Xiaolin Wu in den Buchgrafikedelsteinen II präsentiert. Gerade wie die Linie ist Zeichnungsalgorithmus ein Ersatz für den Linienzeichnungsalgorithmus von Bresenham, der Kreiszeichnungsalgorithmus ist ein Ersatz für den Kreiszeichnungsalgorithmus von Bresenham.

fungieren Sie Anschlag (x, y, c) ist

planen Sie das Pixel an (x, y) mit der Helligkeit c (wo 0  c  1)

fungieren Sie ipart (x) ist

geben Sie Teil der ganzen Zahl von x zurück

Funktionsrunde (x) ist

geben Sie ipart (x + 0.5) zurück

fungieren Sie fpart (x) ist

geben Sie Bruchteil von x zurück

fungieren Sie rfpart (x) ist

kehren Sie 1 - fpart (x) zurück

fungieren Sie drawLine (x1, y1, x2, y2) ist

dx = x2 - x1

dy = y2 - y1

wenn abs (dx)

Zeichen: Wenn am Anfang der Routine abs (dx)


Source is a modification of the Wikipedia article Xiaolin Wu's line algorithm, licensed under CC-BY-SA. Full list of contributors here.
Dan Georgakas / Gatorade
Impressum & Datenschutz