[Off] esse cуdigo pode ser funcional?
#1

Bom, estava tentando fazer algo para medir a distancia entre 2 jogadores (mas usando uma funзгo propria ^^)

Gostaria de saber se hб algum erro nessa funзгo e se hб como melhorar.

pawn Код:
stock Distance(Float:X, Float:Y, Float:x, Float:y)
{
    /*
    A(X, Y) e B(x, y)
    d(A,B) = (X - x)І + (Y - y)І
    */

    new Float: Calculo_Inicial[2];
    Calculo_Inicial[0] = X-x;
    Calculo_Inicial[1] = Y-y;
    new Float: Segundo_Calculo[2];
    Segundo_Calculo[0] = Calculo_Inicial[0]*Calculo_Inicial[0];
    Segundo_Calculo[1] = Calculo_Inicial[1]*Calculo_Inicial[1];
    new Float: Resultado;
    Resultado = Segundo_Calculo[0]+Segundo_Calculo[1];
    new String[128];
    format(String, sizeof String, "%.0f", Resultado);
    print(String);
    return true;
}
Reply
#2

http://freespace.virgin.net/hugo.eli...nes/r_dist.htm

http://en.wikipedia.org/wiki/Euclidean_distance ou http://pt.wikipedia.org/wiki/Dist%C3%A2ncia_euclidiana
Reply
#3

Mas o que postei й funcional? Estб correto?

http://freespace.virgin.net/hugo.eli...nes/r_dist.htm
Este me interessou muito ^^
Reply
#4

Dб pra calcular a distвncia entre dois jogadores mais facilmente usando o tamanho de um vetor.

pawn Код:
new Float:p[6];
GetPlayerPos(playerid,p[0],p[1],p[2]);
GetPlayerPos(id,p[3],p[4],p[5]);
new Float:distance = VectorSize(p[0] - p[3],p[1] - p[4],p[2] - p[5]);
Reply
#5

Vocк resolve isso facilmente com o Teorema de Pitбgoras

Lembre-se que o mapa do GTA nгo deixam de ser um plano cartesiano, onde cada X tem um Y.
2 pontos diferentes(posiзхes dos jogadores) sгo 2 vйrtices do triвngulo imaginбrio em que vocк usarб o teorema, cada um com seu X e Y, e a reta que liga as posiзхes й a hipotenusa do triвngulo.



PS: Se vocк fez uma funзгo pra calcular distвncia, nгo usa return true, usa no return o valor final do calculo...
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)