Professional Documents
Culture Documents
Bresenham
para Pintar Círculos
y Cuádricas en General
Carlos E. Alvarez D.
06-39141
Contenido
- Introducción
- Algoritmo de Bresenham para Dibujar Líneas Rectas
- Algoritmo de Bresenham para Dibujar Círculos
- Algoritmo Rápido Basado en Algoritmo de
Bresenham para Dibujar Elipses
- Generalización del Algoritmo de Bresenham para
Curvas Cuadráticas
- Resumen de Aplicaciones e Importancia
Introducción
- Publicado en 1965
Imagen: http://wscg.zcu.cz/wscg2003/Photos_2003/Bresenham.jpg
Bresenham – Líneas Rectas
Algoritmo Original
- Para líneas en el primer octante desde p1 = (x1, y1 )
del origen)
- Decisión E( ) o NE ( )
[3,5,6]
Bresenham – Líneas Rectas
Algoritmo Original Cont.
dx = x2 - x1
dy = y2 - y1
E = 2 * dy - dx
Dn = E + dx = 2dy
Dp = E - dx = 2dy - 2dx
x = x1
DO WHILE x <= x2
IF E < 0 THEN
E = E + Dn
/* y = y + 0 */
ELSE
E = E + Dp
y = y + 1
END IF
x = x + 1
DrawPoint (x, y)
LOOP
Sólo operaciones enteras
[3,5,6]
Bresenham - Círculos
- Se escoge el Arco donde x ≥ 0, y ≥ 0, x ≥ y *
- Los otros 8 arcos se pintan por simetría (8-way
symmetry)
- Decisión para el próximo píxel: 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+ 2y−1
- eSO = (x −1)2 + (y+1)2 − r 2 = eS + 2x +1
-Se escoge error con menor módulo
2eS > 2x −1 ⇒ SO
[8]
Bresenham - Cuádricas
Error y Decisión
– 4q
[8]
Bresenham - Cuádricas
Error y Decisión
- Caso 2
1
- Error inicial e0 = x + x + − 4qy− 4q
2
4
- Decisión N( ) o NE ( )
- N ⇒ ei+1 = ei − 8q
- NE ⇒ ei+1 = ei + 3x + 2