Estoy tratando de averiguar el ancho y la altura óptimos (en píxeles) para comenzar a construir mosaicos hexagonales para el desarrollo del juego. Prefiero las cuadrículas hexagonales de "superficie plana", pero las matemáticas son similares para ambas.
Estoy buscando un tamaño de mosaico "óptimo" que permita que tanto el ancho como la altura del mosaico sean un número de píxel redondeado, basado en el hecho de que height = sqrt(3)/2 * width
.
Mis habilidades matemáticas son prácticamente inexistentes, solo ejecuté un script de fuerza bruta que corría a través de anchos de 1 a 1024 y no se me ocurrió un solo valor de w
dónde h
era un número entero. ¿Es este realmente el caso? ¿Cómo puede alguien crear mosaicos hexagonales perfectos si no hay un ancho y un tamaño de altura que puedan acomodar una relación de aspecto hexagonal perfecta?
fuente
Respuestas:
No. √3 es un número irracional y, por definición, un número irracional no se puede usar como una relación entre dos números naturales (enteros) como el recuento de píxeles.
Sin embargo, no hay una regla que diga que tienes que usar hexágonos ideales en tus fichas de juego. Si lo aproxima de cerca y evita cualquier error de cálculo que pueda resultar, lo que debería poder hacer con las matemáticas enteras de todos modos, puede obtener un producto atractivo mientras trabaja con números fáciles detrás de escena (si puede llamar al 100 y 173 fácil trabajar con).
fuente
sqrt(3)=1.7320508075688772
es (digamos) adouble
, y ciertamente puede expresarse como una razón de enteros (138907099/80198051).NaN
s sondoubles
, pero no son racionales. La respuesta dice "sqrt(3)
es un número irracional" que es falso en el contexto de la programación. Intenté establecer una distinción entre los números de computadora y los números reales.Por si alguien está interesado:
Supongamos que sqrt (3) es racional:
a
yb
tales quea/b
= sqrt (3)a
yb
(a/b)^2 = 3
y por lo tantoa^2 = 3 * b^2
.3 * b^2
es invisible por 3 comob^2
es integral y, pora^2
lo tanto, también es invisible por 3.a
es en sí mismo 3. Puede definirk = a/3
.a^2 = (3k)^2 = 3 * b^2
=>9 * k^2 = 3 * b^2
=> lo3 * k^2 = b^2
que significa queb
también es visible por 3.Créditos a wikipedie para refrescar mi memoria.
fuente
Muchas respuestas complejas aquí. Si está buscando una respuesta "lo suficientemente cerca", intente 7x8. No es un hexágono perfecto, pero lo suficientemente cerca como para que la mayoría de las personas no noten la diferencia.
fuente