punto para medio entre diferencia dibujar dda circunferencias circulo algoritmo algorithm drawing rendering graphics

algorithm - para - circulo de bresenham en c



Algoritmo para dibujar un cĂ­rculo antialias (4)

Bresenham (de la fama del algoritmo de línea) también tenía un algoritmo circular.

Xiaolin Wu adaptó el algoritmo de línea para anti-aliasing, e igualmente hizo lo mismo con el algoritmo de círculo.

http://en.wikipedia.org/wiki/Xiaolin_Wu%27s_line_algorithm

Puede encontrar el algoritmo de círculo con esta búsqueda:

http://www.google.com/search?q=Xiaolin%20Wu%20circle

-Adán

¿Cuál es un buen algoritmo para dibujar círculos antialias? (Lleno y no lleno)


Crea un objeto Graphics g. Hacer

g.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.AntiAlias;

Dibuje su círculo anti aliased con g.FillEllipse o g.DrawEllipse


Dependiendo de la plataforma que esté utilizando, puede estar integrado: Java ciertamente tiene AA integrado en su renderizado de gráficos (y lo ha tenido durante mucho tiempo). Me sorprendería que DotNet no incluyera AA. Además, la plataforma probablemente tenga AA subpíxel, que se obtiene de forma gratuita, y que es sustancialmente mejor que el estándar AA.


Si quieres uno fácil, crea una imagen difuminada desde la matriz de píxeles A hasta la matriz de píxeles B.

Este es uno que he usado (aquí en pseudo-código)

anti_alised_matrix[x][y] = point[x][y] / 2 + point[x+1][y]/8 + point[x-1][y]/8 + point[x][y-1]/8 + point[x][y+1]/8;

Por supuesto, esto se aplica a escala de grises, pero puede hacer fácilmente lo mismo en RGB.

Esto es realmente muy simple, también puede agregar las diagonales, es decir [x + 1] [y + 1] y dividirlo por 16 o 32.