Skip to content
EntityQ549860· pop 25· linked from 31 articles

algorytm Bresenhama

Sign in to save

algorithm for rasterizing a straight line

Wikidata facts

Image
Bresenham.svg
Show 2 more facts
Commons category
Bresenham algorithm
maintained by WikiProject
WikiProject Mathematics
Sources (1)

via Wikidata · CC0

Article · Polski

Algorytm Bresenhama służy do rasteryzacji krzywych płaskich, czyli do jak najlepszego ich obrazowania na siatce pikseli. Jack Bresenham w 1965 roku opracował metodę rasteryzacji odcinków, którą następnie przystosowano do rysowania obiektów innego rodzaju (okręgów czy elips). Siła algorytmu tkwi w prostocie; koszt postawienia jednego piksela to porównanie i jedno dodawanie (dla odcinków) lub porównanie i dwa dodawania (dla okręgów i elips), ponadto algorytm wykonuje obliczenia na liczbach całkowitych, które są bardzo szybkie na wszystkich mikroprocesorach. Metoda pozwala w bardzo prosty sposób wybierać, które piksele leżą najbliżej rasteryzowanego obiektu (np. odcinka). Zakładając, że poprzednio algorytm zapisał piksel o współrzędnych w kolejnym kroku algorytm może zapisać piksel albo (ruch poziomy), albo (ruch ukośny) – wybór determinuje znak tzw. zmiennej decyzyjnej, której wartość jest po każdym kroku aktualizowana. Aktualizacja polega na dodaniu pewnych wartości, będących w przypadku odcinka stałymi, zaś dla okręgu i elipsy wartościami zmieniającymi się z każdym krokiem: * D = zmienna decyzyjna * = przyrost D przy ruchu w lewo * = przyrost D przy ruchu ukośnym * = przyrost przy ruchu w lewo (dla odcinka = 0) * = przyrost przy ruchu w lewo (dla odcinka = 0) * = przyrost przy ruchu ukośnym (dla odcinka = 0) * = przyrost przy ruchu ukośnym (dla odcinka = 0) * powtarzaj * zapisz piksel * jeśli * – ruch w lewo * – aktualizacja zmiennej decyzyjnej * – aktualizacja parametrów pomocniczych * – aktualizacja parametrów pomocniczych * w przeciwnym razie * – ruch ukośny * * – aktualizacja zmiennej decyzyjnej * – aktualizacja parametrów pomocniczych * – aktualizacja parametrów pomocniczych

Abstract from DBpedia / Wikipedia · CC BY-SA