Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Bresenham
para Pintar Crculos
y Cudricas en General
Carlos E. Alvarez D.
06-39141
Contenido
- Introduccin
- Algoritmo de Bresenham para Dibujar Lneas Rectas
- Algoritmo de Bresenham para Dibujar Crculos
- Algoritmo Rpido Basado en Algoritmo de
Bresenham para Dibujar Elipses
- Generalizacin del Algoritmo de Bresenham para
Curvas Cuadrticas
- Resumen de Aplicaciones e Importancia
Introduccin
-
Publicado en 1965
Imagen: http://wscg.zcu.cz/wscg2003/Photos_2003/Bresenham.jpg
p2 = (x2 , y2 )
del origen)
- Decisin E(
) o NE ( )
e0 = 2dy 2dx
e0 > 0 NE
si se elige E o NE
donde
dx = x2 x1 y
dy = y2 y1
[3,5,6]
[3,5,6]
Bresenham - Crculos
x 0, y 0, x y *
- Se escoge el Arco donde
- Los otros 8 arcos se pintan por simetra (8-way
symmetry)
- Decisin para el prximo pxel: S ( ) o SO ( )
- PS = (x, y+1)
- PSO = (x 1, y+1)
- Se define el error e= x2 + y2 r 2
- eS = x2 + (y+1)2 r 2 = e+ 2y1
- eSO = (x 1)2 + (y+1)2 r 2 = eS + 2x +1
-Se escoge error con menor mdulo
*Ntese
Bresenham - Crculos
Error y Decisin
eS > eSO SO
eS > eS 2x +1 SO
2x 1 1 0 < es <1
2eS > 2x 1 SO
Slo operaciones enteras
[2,3,5,8]
Bresenham - Elipses
- Ecuacin
x2 y2
+ 2 =1
2
a b
) o SE ( )
- Error b2 x2 + a2 y2 = b2 a2
[2,3,6]
Bresenham - Elipses
Error y Decisin
Caso 1
(Caso 2 es anlogo)
eNO < eN NO
Bresenham - Cudricas
( x h)
= 4q ( y k)
Ecuacin
implcita resultante es
2-way symmetry
f (x, y) = x 4qk
2
[8]
Bresenham - Cudricas
Error y Decisin
- Problema: tangente vara de cero a infinito
- Al igual que con elipses hay que dividir la curva
-
Bresenham - Cudricas
Error y Decisin
- Caso 1
- Error inicial e0 = x2 + 2x +1 4qy 2q
- Decisin E(
) o NE ( )
- E ei+1 = ei + 2x + 3
- NE e = e + 2x + 3 4q
i+1
i
4q
[8]
Bresenham - Cudricas
Error y Decisin
- Caso 2
1
2
- Error inicial e0 = x + x + 4qy 4q
- Decisin N( ) o NE ( )
- N ei+1 = ei 8q
- NE ei+1 = ei + 3x + 2
Slo operaciones enteras en el clculo iterativo
[8]
Bresenham
Importancia y Aplicaciones
-
Bresenham
Importancia y Aplicaciones
- Implementado en plotters, en el firmware o
hardware de la mayora de las tarjetas grficas
modernas y en muchas libreras grficas.
- Hay que modificarlo para lograr anti-aliasing
Referencias
[1] Wikipedia (material consultado mas no citado):
http://es.wikipedia.org/wiki/Algoritmo_de_Bresenham
http://en.wikipedia.org/wiki/Bresenham%27s_line_algorithm
[2] http://materias.fi.uba.ar/6671/primitivas_graficas2.pdf
[3] http://free.pages.at/easyfilter/bresenham.html
[4] http://www.differencebetween.com/difference-between- dda-and-vs-bresenhamalgorithm/
[5] Laura M. Castro Souto, Grficos en Computacin. Curso 2000/2001. Disponible
en:
http://www.madsgroup.org/~laura/recursos-ii/GC.pdf
[6] John Kennedy, A Fast Bresenham Type Algorithm for Drawing Ellipses.
Disponible en:
http://homepage.smc.edu/kennedy_john/belipse.pdf
[7] http://www.abreojosensamblador.net/html/Pags/Cap23.html
[8] http://www.cs.colostate.edu/~cs410/lectures/L12_bresenham2.pdf