Estoy haciendo un juego donde todos los movimientos se basan en la cuadrícula. También quiero hacer entidades que puedan moverse en círculo. Entonces, ¿alguien tiene alguna sugerencia para crear un círculo a partir de una cuadrícula de cuadrados (como la forma en que MS Paint usa la herramienta círculo para hacer un círculo de píxeles cuadrados).Cómo hacer un círculo en una cuadrícula?
8
A
Respuesta
13
Echa un vistazo Midpoint circle algorithm.
3
Aquí está mi implementación de Java del algoritmo de punto medio de Bressenham;
private void drawCircle(final int centerX, final int centerY, final int radius) {
int d = 3 - (2 * radius);
int x = 0;
int y = radius;
Color circleColor = Color.white;
do {
image.setPixel(centerX + x, centerY + y, circleColor);
image.setPixel(centerX + x, centerY - y, circleColor);
image.setPixel(centerX - x, centerY + y, circleColor);
image.setPixel(centerX - x, centerY - y, circleColor);
image.setPixel(centerX + y, centerY + x, circleColor);
image.setPixel(centerX + y, centerY - x, circleColor);
image.setPixel(centerX - y, centerY + x, circleColor);
image.setPixel(centerX - y, centerY - x, circleColor);
if (d < 0) {
d = d + (4 * x) + 6;
} else {
d = d + 4 * (x - y) + 10;
y--;
}
x++;
} while (x <= y);
}
La implementación de clase completa y muchos otros ejemplos de idiomas se pueden encontrar en el sitio de rosetta; http://rosettacode.org/wiki/Bitmap/Midpoint_circle_algorithm
Cuestiones relacionadas
- 1. Cómo dibujar un círculo lleno en Java?
- 2. centrar una imagen en un círculo css
- 3. ¿Cómo hacer una cuadrícula (como una cuadrícula de papel cuadriculado) con solo CSS?
- 4. UIImage en un círculo
- 5. Cómo crear un círculo con un agujero en un círculo en WPF?
- 6. ¿Cómo puedo hacer una cuadrícula de esquina redondeada?
- 7. ¿Cómo dibujar un círculo transparente?
- 8. ¿Cómo se dibuja una cuadrícula en un diagrama en Python?
- 9. Cómo dibujar un círculo concéntrico en iphone?
- 10. En XAML, ¿cómo puedo mantener una elipse como un círculo?
- 11. Cómo enlazar un comando al hacer doble clic en una fila en la cuadrícula de datos
- 12. Cómo deshabilitar el efecto de círculo naranja al hacer clic en un enlace, en un WebView
- 13. MATLAB: cómo recorto un círculo de una imagen
- 14. ¿Hay alguna manera de hacer un círculo z-index?
- 15. Java: rellenar un rectángulo en una cuadrícula
- 16. Cómo dibujar un círculo con un color específico en XNA?
- 17. cómo generar un círculo utilizando javascript
- 18. dibujar un círculo lleno
- 19. Usar un diccionario en una propiedad cuadrícula
- 20. algoritmo para detectar un círculo en una imagen
- 21. Encontrar si un círculo está dentro de otro círculo
- 22. Cómo colocar un control de usuario XAML en una cuadrícula
- 23. ¿Cómo puedo hacer un círculo en la reproducción automática de jPlayer?
- 24. Creando una cuadrícula en Java
- 25. WPF: ¿Cómo dibujar un círculo y arrastrarlo?
- 26. Embalaje máximo de rectángulos en un círculo
- 27. Dibuja un círculo hueco en SVG
- 28. ¿Cómo llenar una cuadrícula programáticamente en Silverlight?
- 29. Dibuje un círculo con ggplot2
- 30. Cómo dibujar un círculo con particionado en Android?