Para muchos juegos jugados en una grilla, los hexágonos son Clearly Superior Choice ™. Desafortunadamente, muchos sitios de arte de juegos gratuitos solo tienen conjuntos de mosaicos sin costura para mapas cuadrados. En un proyecto anterior, usé algunos de estos y los convertí manualmente en hexágonos.
Sin embargo , me he vuelto perezoso en mi vejez. Debería ser fácil automatizar el proceso con un pequeño script.
Sin embargo , me he vuelto perezoso en mi vejez. Así que te lo estoy subcontratando y disfrazándolo como un desafío de código de golf 1 .
Entrada
La entrada es una imagen cuadrada en cualquier formato de imagen común capaz de color RGB de 24 bits. También puede tomar un nombre de archivo como entrada en lugar de los datos de la imagen en sí.
Puede suponer que la imagen es cuadrada y que la longitud lateral es un múltiplo de cuatro.
Salida
La salida es el mosaico de entrada, pero se convierte en un hexágono (la imagen en sí será cuadrada, con áreas transparentes). Puede guardarlo en un archivo o mostrarlo en la pantalla.
De nuevo, cualquier formato de imagen común servirá. Si el formato que está utilizando admite la transparencia, las áreas de fondo deben ser transparentes. Si no es así, puede usar el color # FF00FF (ese horrible fucsia) como sustituto.
Método
Entonces, ¿Cómo lo hacemos? El método que uso 2 aplasta la imagen un poco verticalmente, pero en general se ve bastante bien para la mayoría de las cosas. Haremos un ejemplo con esta imagen de entrada:
- Escala: escala la imagen a una proporción de 3: 2. Dado que nuestras imágenes serán cuadradas, esto significa que simplemente las escala al 75% de ancho y 50% de altura. Nuestro ejemplo de entrada es 200x200, por lo que terminamos con esta imagen de 150x100:
- Mosaico: coloque copias de su imagen escalada en una cuadrícula de 2x2:
- Recortar: agarra un hexágono del tamaño adecuado desde cualquier lugar de esta cuadrícula de 2x2. Ahora, para facilitar el mosaico, este hexágono no es exactamente regular. Después de recortar un cuadrado del tamaño original (aquí 200x200), recorta las esquinas. Las líneas de recorte deben ir desde (aproximadamente) el centro de cada lado izquierdo / derecho hasta un cuarto desde el borde en la parte superior / inferior:
¡Y esa es tu salida!
Aquí hay un ejemplo de cómo se vería cuando esté en mosaico (alejado aquí):
Este es el código de golf, por lo que gana el código más corto en bytes. Se aplican lagunas estándar, etc., etc.
1 Siéntase libre de creer esto o no.
2 Método uno de este útil sitio.