Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Algoritmo Bresenham
Algoritmo Bresenham
7 de julio de 2011
Contenido
Algoritmo de bresenham para lneas ................................................................................................................. 2 Cdigo bresenham para lneas en C++ ....................................................................................................... 3 Algoritmo de bresenham para crculos ............................................................................................................... 4 Cdigo bresenham para crculos en C++ ..................................................................................................... 5 Ejemplo de la Lnea de Bresenham ..................................................................................................................... 6 Un ejemplo sencillo del algoritmo de la lnea de Bresenham ................................................................... 6 Ejemplo del Crculo de Bresenham ...................................................................................................................... 6 Esta es una implementacin del algoritmo de crculo. ................................................................................ 6 Bibliografa .............................................................................................................................................................. 7
Conocimientos puede tenerlos cualquiera, pero el arte de pensar es el regalo ms escaso de la naturaleza. Federico II
Algoritmo Bresenham
7 de julio de 2011
Algoritmo Bresenham
Algoritmo de bresenham para lneas
El algoritmo de Bresenham es un algoritmo que determina los puntos en un mapa de bits de n-dimensiones que deben ser trazados con el fin de formar una aproximacin a una lnea recta entre dos puntos dados. Es comnmente usado para dibujar lneas en una pantalla de ordenador, ya que utiliza slo adicin de enteros, la resta y desplazamiento de bits, que son operaciones muy barato en las arquitecturas de ordenador estndar. Resultados del algoritmo de Bresenham. Es uno de los primeros algoritmos desarrollados en el campo de grficos por ordenador. Una extensin menor a la del algoritmo original tambin se ocupa de dibujar crculos. Partimos de que las coordenadas de los pixels en una imagen son coordenadas enteras y que conocemos los extremos del segmento que forma la lnea siendo sus coordenadas (x0,y0) y (x1,y1). El algoritmo de Bresenham selecciona el entero 'y' correspondiente al pixel central que est ms cercano del que sera calculado con fracciones y lo mismo para la coordenada 'x'. En las sucesivas columnas la coordenada 'y' puede permanecer con el mismo valor o incrementarse en cada paso a una unidad. La ecuacin general de la lnea que pasa por los extremos conocidos es:
Puesto que conocemos la columna, 'x', la fila 'y' del pixel se calcula redondeando esta cantidad al entero ms cercano segn la siguiente frmula.
La pendiente (y1 - y0) / (x1 - x0) depende slo de las coordenadas de los extremos y puede ser previamente calculada, y el valor ideal de 'y' para los sucesivos valores enteros de 'x' se puede calcular a partir de y0 e ir aadiendo en varias ocasiones la pendiente.
Algoritmo Bresenham
7 de julio de 2011
Algoritmo Bresenham
7 de julio de 2011
De la ecuacin de un crculo se obtiene la ecuacin transformada x 2 + y 2 - r 2 = 0, donde r 2 se calcula slo una sola vez durante la inicializacin:
Y por lo tanto para la coordenada x. Adems tenemos que aadir las coordenadas del punto medio al establecer un pxel. Estas adiciones frecuentes entero no limitan el rendimiento de mucho, ya que puede prescindir de los cuadrados (root) los clculos en el lazo interno, a su vez. Una vez ms el cero en la ecuacin del crculo transformado se sustituye por el trmino de error. La inicializacin del trmino de error se deriva de un desplazamiento de pixel y medio en la salida. Hasta la interseccin con la lnea perpendicular, esto conduce a un valor acumulado de r en el trmino de error, de modo que este valor se utiliza para la inicializacin. Una posible implementacin del algoritmo de Bresenham de un crculo completo en C. Aqu otra variable para el clculo recursivo de los trminos de segundo grado se utiliza, lo que corresponde con el trmino de2 n + 1. Slo tiene que incrementar en un 2 a partir de una etapa a la siguiente:
Algoritmo Bresenham
7 de julio de 2011
Algoritmo Bresenham
7 de julio de 2011
Algoritmo Bresenham
7 de julio de 2011
Bibliografa
1. JACK E. BRESENHAM, "ALGORITHM FOR COMPUTER CONTROL OF A DIGITAL PLOTTER", IBM SYSTEMS JOURNAL, VOL. 4, NO.1, JANUARY 1965, PP. 2530 2. "THE BRESENHAM LINE-DRAWING ALGORITHM", BY COLIN FLANAGAN 3. MICHAEL ABRASH'S GRAPHICS PROGRAMMING BLACK BOOK A VERY OPTIMIZED VERSION OF THE ALGORITHM IN C AND ASSEMBLY FOR USE IN VIDEO GAMES WITH COMPLETE DETAILS OF ITS INNER WORKINGS, WRITTEN BY MICHAEL ABRASH, PAGES 654-678 - ISBN 978-1-57610-174-2 4. HTTP://WWW.CS.TORONTO.EDU/~SMALIK/418/TUTORIAL2_BRESENHAM.PDF 5. HTTP://DIGITUM.UM.ES/XMLUI/BITSTREAM/10201/22175/1/MYPFC.PDF 6. HTTP://FREE.PAGES.AT/EASYFILTER/BRESENHAM.HTML