math - title tag html
La cuadrícula hexagonal se coordina con las coordenadas de píxel (1)
Para mayor claridad, que las coordenadas "hexagonales" sean (r,g,b) donde r , g , y b son las coordenadas roja , verde y azul , respectivamente. Las coordenadas (r,g,b) y (x,y) están relacionadas por lo siguiente:
y = 3/2 * s * b
b = 2/3 * y / s
x = sqrt(3) * s * ( b/2 + r)
x = - sqrt(3) * s * ( b/2 + g )
r = (sqrt(3)/3 * x - y/3 ) / s
g = -(sqrt(3)/3 * x + y/3 ) / s
r + b + g = 0
Derivación:
Noté por primera vez que cualquier hilera horizontal de hexágonos (que debería tener una coordenada
yconstante) tenía una coordenadabconstante, por lo queysolo dependía deb. Cada hexágono se puede dividir en seis triángulos equiláteros con lados de longituds; los centros de los hexágonos en una fila son una longitud y media de los costados por encima / debajo de los centros en la siguiente fila (o, quizás más fácil de ver, los centros en una fila son 3 lados arriba / debajo de los centros dos filas ), entonces para cada cambio de1enb,ycambia3/2 * s, dando la primera fórmula. Resolviendo paraben términos deyda la segunda fórmula.Los hexágonos con una coordenada
rdada tienen centros en una línea perpendicular al eje r en el punto en el ejerque es3/2 * sdesde el origen (similar a la derivación anterior deyen términos deb). El ejertiene pendiente-sqrt(3)/3, por lo que una línea perpendicular a él tiene pendientesqrt(3); el punto en el ejery en la línea tiene coordenadas(3sqrt(3)/4 * s * r, -3/4 * s * r); entonces una ecuación enxyypara la línea que contiene los centros de los hexágonos con coordenadaresy + 3/4 * s * r = sqrt(3) * (x - 3sqrt(3)/4 * s * r)Sustituyendo poryusando la primera fórmula y resolviendo porxda la segunda fórmula. (Esta no es la forma en que realmente saqué este, pero mi derivación fue gráfica con muchos intentos de prueba y error, y este método algebraico es más conciso).El conjunto de hexágonos con una coordenada
rdada es el reflejo horizontal del conjunto de hexágonos con esa coordenada g, así que cualquiera que sea la fórmula para la coordenadaxen términos deryb, la coordenadaxpara esa fórmula congen lugar derserá todo lo contrario. Esto da la tercera fórmula.Las fórmulas cuarta y quinta provienen de sustituir la segunda fórmula por
by de resolver pararogen términos dexyy.La fórmula final vino de la observación, verificada por álgebra con las fórmulas anteriores.
Estoy trabajando con una grilla hexagonal. He elegido usar este sistema de coordenadas porque es bastante elegante.
Esta pregunta se refiere a la generación de coordenadas, y es bastante útil. Mi problema ahora es convertir estas coordenadas ay desde las coordenadas de píxeles reales. Estoy buscando una forma simple de encontrar el centro de un hexágono con coordenadas x, y, z. Supongamos que (0,0) en coordenadas de píxeles está en (0,0,0) en coordenadas hexadecimales, y que cada hexágono tiene un borde de longitud s. Me parece que x, y y z deberían mover cada una de mis coordenadas una cierta distancia a lo largo de un eje, pero están interrelacionadas de una manera extraña, no puedo rodearla con la cabeza.
Puntos de bonificación si puedes ir en la otra dirección y convertir cualquier punto (x, y) en coordenadas de píxeles al hex al que pertenece el punto.