Mapas isométricos en Flash
Coordenadas de mundo isométrico a coordenadas de mapa
El cálculo de las coordenadas de mapa es muy sencillo de visualizar si pensamos al tile del siguiente modo:

Figura 14. Tamaño del lado isométrico
La columa en la que nos encontraremos será:
col = Xi / W iso
row = Zi / W iso
Siendo W iso:
W iso = tw / (2 * Cos ?) = th / (2 * Sen ?)
Entonces:
col = 2 * Xi * Cos ? / tw
row = 2 * Zi * Sen ? / th
Coordenadas de mapa isométrico a coordenadas de mundo isométrico
Para hacer el pasaje inverso al caso anterior bastará con despejar. Tengamos en cuenta que la coordenada Yi cuando se realiza este pasaje se fija en cero:
Yi = 0
Xi = col * tw / (2 * Cos ?)
Zi = row * th / (2 * Sen ?)
Coordenadas de mundo plano a coordenadas de mundo isométrico
De las ecuaciones anteriores también podemos realizar un despeje y obtener las coordenadas de mundo isométrico a partir de las coordenadas de mundo plano. Veamos:
Xp = Xmapa + (Xi + Zi) Cos ?
Yp = Ymapa – [(Xi - Zi) Sen ? + Yi]
Debido a que existen infinitas coordenadas de mundo plano que generen coordendas de mundo isométrico deberemos fijar una de las variables de mundo isométrico. Entonces hacemos Yi = 0:
Xp = Xmapa + (Xi + Zi) Cos ?
Yp = Ymapa – [(Xi - Zi) Sen ? + 0]
Xp = Xmapa + (Xi + Zi) Cos ?
Yp = Ymapa – (Xi – Zi) Sen ?
Xi + Zi = Xp – Xmapa / Cos ?
Xi – Zi = Yp – Ymapa / Sen ?
Xp – Xmapa / Cos ? = (Yp – Ymapa / -Sen ?) + 2 * Zi
Zi = 0.5 * [(Xp - Xmapa / Cos ?) + (Yp - Ymapa / Sen ?)]
Xi = (Xp – Xmapa / Cos ?) – Zi
Yi = 0
El resto de las conversiones pueden obtenerse fácilmente haciendo uso de las ya calculadas.
Espero que este artÃculo les haya resultado útil.
~fuzzyLogic





Comentarios (1)



MUY interesante esto =) felicitaciones por el trabajo