Busco la formula de la distancia entre dos pueblos

DeletedUser

Guest
biggrin.png
Necesito saber la formula de la distancia entre dos pueblos conociendo las coordenadas de los dos pueblos.


Estaba realizando un pequeño programa para planificar los atakes. He visto que otra persona había construido algo con el nombre de "Planificador de Ataques", cuando en realidad es un simulador.
Mi propuesta es:
- tener una lista de objetivos.
- y otra lista con tus pueblos lanzadores de atakes.

y la planificación final sería la lista de los lanzamientos desde cada uno de mis pueblos ordenados por tiempos de lanzamiento, lo que yo llamo 'lineas de atake'.

Estas líneas de atake describen un plan de atake, para que los atakes lleguen todos a unas horas determinadas por objetivo, por ejemplo diciendo:
Pueblo A ataca a Pueblo X: Tarda 5:30:00, lanzar a : 8:30:10, lanzar Noble
Pueblo A ataca a Pueblo X: Tarda 5:30:00, lanzar a : 8:30:10, lanzar Noble
Pueblo A ataca a Pueblo X: Tarda 5:30:00, lanzar a : 8:30:10, lanzar Noble
Pueblo A ataca a Pueblo X: Tarda 5:30:00, lanzar a : 8:30:10, lanzar Noble
Pueblo B ataca a Pueblo X: Tarda 4:30:00, lanzar a : 9:30:10, lanzar Off (paso ariete)
Pueblo C ataca a Pueblo Y: Tarda 3:25:00, lanzar a : 10:35:10, lanzar Fake (paso ariete)
Pueblo A ataca a Pueblo Y: Tarda 3:10:00, lanzar a : 10:50:10, lanzar Fake (paso ariete)
Pueblo C ataca a Pueblo Y: Tarda 2:40:00, lanzar a : 11:20:10, lanzar Fake (paso ariete)
Pueblo A ataca a Pueblo Z: Tarda 1:30:00, lanzar a : 12:30:10, lanzar Off (paso ariete)
Pueblo A ataca a Pueblo X: Tarda 1:20:00, lanzar a : 12:40:10, lanzar Espia
Pueblo A ataca a Pueblo X: Tarda 1:10:00, lanzar a : 12:50:10, lanzar Sabotaje
Pueblo A ataca a Pueblo Z: Tarda 1:05:00, lanzar a : 12:55:10, lanzar Off (paso ariete)
Pueblo A ataca a Pueblo Z: Tarda 0:30:00, lanzar a : 13:20:10, lanzar Off (paso ariete)
...
etc
...

Y puedes coordinar atakes con fakes, off, espionajes y sabotajes, llegando a las horas que determines

Esto sería un planificador.

El programa lo tengo hecho. Pero me falla la formula de la distancia entre dos pueblos dados sus coordenadas Cx y Cy.
Y lo que estaba buscando es si alguien conoce la formula de la distancia entre dos pueblos sabiendo sus coordenadas
 

DeletedUser

Guest
√ ( (X[SUB]2 [/SUB]- X[SUB]1[/SUB])[SUP]2 [/SUP]+ (Y[SUB]2[/SUB] - Y[SUB]1[/SUB] )[SUP]2[/SUP] ) = Δ (el valor que te dé lo multiplicas por la velocidad de la unidad)

( X[SUB]1[/SUB] | Y[SUB]1[/SUB] ) = Pueblo Origen

( X[SUB]2[/SUB] | Y[SUB]2[/SUB] ) = Pueblo Objetivo
 

DeletedUser34

Guest
Para calcular la distancia exacta entre dos pueblos debes aplicar el teorema de Pitágoras. Tenemos que calcular la hipotenusa, que es la distancia entre ambos pueblos:

4bd5cd9087765756248b2c1f8953f624.png



- d es la distancia, que es lo que queremos hallar.
- x2 es la coordenada x del pueblo de ''destino'', x1 la del pueblo de ''origen''
- y2 es la coordenada y del pueblo de ''destino'', y1 la del pueblo de ''origen''


Pongamos un ejemplo práctico:

Queremos averiguar la distancia entre dos pueblos, sus coordenadas (X/Y) son (437/527) el pueblo de origen y (450/535) el pueblo de destino. Sustituimos los valores y quedaría:

9c31d37063d28592b6b0a6ddab310129.png



Hacemos el cálculo. En este caso: d = 15,26434 (campos entre pueblo y pueblo)

Con la distancia calculada sólo te quedaría multiplicar la d por la velocidad de cada tropa para ver lo que tardarían.


Y bueno, esa es la teoría. Ahora bien, no sé si Innogames ha metido algún parámetro diferente para calcular las distancias al estar dividido el mapa en hexágonos. En principio debería ser así. Mañana lo compruebo con cálculos reales dentro del juego, que me iba ya a la cama.

Espero haberte ayudado. Un saludo.
 

DeletedUser

Guest
Muchas gracias a los dos.

Pero la formula normal del Teorema de Pitagoras no es la correcta.

La formula de la distancia sería válida si estuvieramos pensando en una superficie de cuadrados, el problema es que es una superficie de hexagonos, y las lineas y las columnas no son las mismas.

Hay que utilizar, seguro, parte de esta formula, pero hay que modificarla al ser una superficie de hexagonos. Lo que no estoy seguro es como.
 

DeletedUser34

Guest
Perdona por la tardanza. Efectivamente, he hecho las comprobaciones pertinentes en el juego y no se puede aplicar esta fórmula. Los resultados son erróneos. Si os sirve para GT por si a alguien le interesa, pero no para TW2.

La única manera de saber la fórmula que se aplica es que Innogames la haga pública, y dudo que eso sea posible. Nuestro CM, que yo sepa, tampoco la sabe. Otra forma de sacarla es que venga un matemático a iluminarnos, yo de momento no lo soy jeje.

Siento no haber podido ser de ayuda. Un saludo.
 

DeletedUser

Guest
y el tema es cuando tenes los ejes destinos o alguno es mas chico o mas grande que el original cuando vas de una zona +500|+500 a otra +500|-500 como lo acomodas?
 

DeletedUser

Guest
El problema a resolver esta planteado en la imagen:


Distancia entre los centros de los hexagonos: 494, 662 a 496, 663 (Rectangulo Rojo).
Distancia entre los centros de los hexagonos: 494, 662 a 497, 664 (Rectangulo Azul).

R. = Radio = Lado = para hexagonos regulares.
Ap. = Apotema = Altura de los 6 triangulos equilateros que forman en el interior del hexagono.

Apotema = raiz cuadrada de (Lado al cuadrado - Lado/2 al cuadrado).

Si Lado = 1, la Apotema es la raiz cuadrada de 3/4.

De aqui se debería de sacar la formula final.
 
Arriba