Para muitos jogos disputados em uma grade, os hexágonos são a Claramente Superior Choice ™. Infelizmente, muitos sites de arte de jogos gratuitos possuem apenas conjuntos de blocos sem costura para mapas quadrados. Em um projeto passado, usei alguns deles e os converti manualmente em hexágonos.
No entanto , fiquei preguiçoso na velhice. Deve ser fácil automatizar o processo com um pequeno script.
No entanto , fiquei preguiçoso na velhice. Portanto, estou terceirizando para você e disfarçando-o como um desafio de código de golfe 1 .
Entrada
A entrada é uma imagem quadrada em qualquer formato de imagem comum capaz de cores RGB de 24 bits. Você também pode usar um nome de arquivo como entrada em vez dos próprios dados da imagem.
Você pode assumir que a imagem é quadrada e que o comprimento lateral é múltiplo de quatro.
Saída
A saída é o bloco de entrada, mas convertido em um hexágono (a própria imagem será quadrada, com áreas transparentes). Você pode salvá-lo em um arquivo ou exibir na tela.
Novamente, qualquer formato de imagem comum servirá. Se o formato que você estiver usando suportar transparência, as áreas de segundo plano deverão ser transparentes. Caso contrário, você pode usar a cor # FF00FF (aquela horrível cor de fúcsia) como substituta.
Método
Então, como fazemos isso? O método que eu uso 2 esmaga a imagem um pouco verticalmente, mas no geral parece muito bom para a maioria das coisas. Vamos fazer um exemplo com esta imagem de entrada:
- Escala: Escale a imagem para uma proporção de 3: 2. Como nossas imagens serão quadrados, isso significa que você as dimensiona para 75% de largura e 50% de altura. Como nosso exemplo de entrada é 200x200, acabamos com esta imagem de 150x100:
- Lado a lado: Coloque cópias da imagem em escala em uma grade 2x2:
- Cortar: Pegue um hexágono de tamanho apropriado de qualquer lugar nesta grade 2x2. Agora, para facilitar a telha, esse hexágono não é exatamente regular. Depois de cortar um quadrado do tamanho original (aqui 200x200), você corta os cantos. As linhas de corte devem percorrer (aproximadamente) o centro de cada lado esquerdo / direito a um quarto da borda na parte superior / inferior:
E essa é a sua saída!
Aqui está um exemplo de como pode parecer quando ladrilhado (ampliado aqui):
Este é o código golf, pelo que o código mais curto em bytes vence. Aplicam-se brechas padrão, etc. e assim por diante.
1 Sinta-se livre para acreditar nisso ou não.
2 Método um deste site útil.