[Ajuda] Como calcular a distancia entre 2 pontos?
#1

Apenas por curiosidade, como se calcula a distancia entre 2 pontos tridimencionais (X,Y,Z)?

Eu sei que existe o GetPlayerDistanceFromPoint(.....) sei atй como usa-lo...

Porem por questхes de curiosidades, supondo que tenho

Ponto A (X, Y, Z);
Ponto B (PX, PY, PZ);

Como calculo a distancia entre eles?
Reply
#2

PHP код:
Float: GetDistance2D(Float: x1, Float: y1,  Float: z1, Float: x2, Float: y2, Float: z2)
{
    return 
floatsqroot(
        
floatpower(floatabs(floatsub(x2, x1)), 2.0) + 
        
floatpower(floatabs(floatsub(y2, y1)), 2.0) + 
        
floatpower(floatabs(floatsub(z2, z1)), 2.0)
    );
} 
Reply
#3

Tendo o ponto A e B e as coordenadas X, Y e Z:



Passando essa fуrmula para Pawn fica igual o amigo acima fez.

Fonte: http://mundoeducacao.bol.uol.com.br/...-no-espaco.htm
Reply
#4

Faзa bom uso.

Код:
stock GetDistance(Float:x1, Float:y1, Float:z1, Float:x2, Float:y2, Float:z2)
	return floatround(floatsqroot(((x1 - x2) * (x1 - x2)) + ((y1 - y2) * (y1 - y2)) + ((z1 - z2) * (z1 - z2))));
Reply
#5

Existe uma funзгo nativa para fazer isso (mas rбpido que qualquer matemбtica).
Use a seguinte stock que acabei de fazer:
Код:
forward Float:GetDistancePointToPoint(Float:X1, Float:Y1, Float:Z1, Float:X2, Float:Y2, Float:Z2);
stock Float:GetDistancePointToPoint(Float:X1, Float:Y1, Float:Z1, Float:X2, Float:Y2, Float:Z2) return VectorSize(X1-X2, Y1-Y2, Z1-Z2);
Reply
#6

Valeu Pessoal! Consegui!

OBS Estava querendo saber para fazer o teste de desempenho!
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)