Os pensamentos de Amit sobre Grades [Parte 3: Derivação de Grades Hexagonais e Triangulares]

by apecode1

Grades hexagonais e triangulares podem ser derivadas de grades quadrangulares. (Tente mudar o ângulo neste demo em Flash(inglês).) Tendo em vista que o sistema de coordenadas para quadrados é direto, a derivação nos guiará no planejamento de um sistema de coordenadas para hexágonos e triângulos. Quadrados para Hexágonos Há dois passos necessários para tornar uma grade quadrangular numa grade hexagonal. Primeiro, nós devemos compensar as colunas(ou fileiras). Segundo, nós dividimos a metade das bordas e juntamos elas no meio.

Offsetting a square grid to make a hexagonal grid       Another way to offset a square grid to make a hexagonal grid

Figura 1: Grade Quadrangular, aproximações do resultado

Há duas maneiras simples de compensar colunas. A mais comum é compensar de uma em uma coluna(veja na primeira grade da Figura 1). Programar utilizando esta abordagem nota-se se a coluna é par ou impar e escolhe-se quando compensa-la. Uma abordagem mais simples é compensar cada coluna pela metade a mais do que a coluna anterior(veja a segunda grade da Figura 1). Programar usando essa abordagem é mais uniforme, mas o formato do mapa deixa de ser retangular, o que pode ser inconveniente. Nestas páginas trabalharei com a última abordagem; é mais fácil e também pode ser facilmente utilizada com triângulos.(Em uma futura versão desta página eu poderei cobrir as duas versões.)

Widen squares into hexagons, stage 1Widen squares into hexagons, stage 2Widen squares into hexagons, stage 3

Figura 2: Alargando quadrados em hexágonos

Com qualquer abordagem de compensação, o próximo passo é dividir as bordas verticais dos quadrados e dobra-las, como visto na Figura 2. Quando a dobra é reduzida de 180 graus para 120 graus, você terá hexágonos simétricos. Observe que dividindo as bordas verticais nós aumentamos o número de bordas de 4 para 6(um aumento líquido de 1 borda por face, já que as duas novas bordas são compartilhadas por duas faces). Nós também aumentamos o número de vértices de 4 para 6(mas estas vértices são compartilhadas, deixando-nos com um aumento líquido de 1 vértice), e nós deixamos o número de faces inalterado. Isto corresponde o que esperávamos da soma F, E, V indo de 1, 2, 1 para 1, 3, 2.

Quadrados para Triângulo

Square grid     Rhombus grid, from shearing a square gridTriangle grid, from subdividing rhombuses

Figura 3: Deformando quadrados em losangos, então subdividindo-os

Há dois passos necessários para tornar uma grade quadrangular numa grade triangular. Primeiro, devemos deformar os quadrados, o que é similar ao que fizemos aos hexágonos, exceto que nós inclinamos as bordas ao invés de dividi-las. Isto nos da uma grade losangular(veja Figura 3), que compartilha características com a grade quadrangular. Então nós dividimos cara face losangular em dois triângulos. Dividindo cada face significa que agora nós temos o dobro de faces que tínhamos antes, nós adicionamos uma borda para cada face, e nós não adicionamos nenhuma vértice. Isto corresponde o que esperávamos da soma F, E, V indo de 1, 2, 1 para 2, 3, 1.