SA-MP Forums Archive
[Ajuda] Como calcular a distancia entre 2 pontos? - Printable Version

+- SA-MP Forums Archive (https://sampforum.blast.hk)
+-- Forum: Non-English (https://sampforum.blast.hk/forumdisplay.php?fid=9)
+--- Forum: Languages (https://sampforum.blast.hk/forumdisplay.php?fid=33)
+---- Forum: Português/Portuguese (https://sampforum.blast.hk/forumdisplay.php?fid=34)
+---- Thread: [Ajuda] Como calcular a distancia entre 2 pontos? (/showthread.php?tid=652621)



Como calcular a distancia entre 2 pontos? - AdrianoStk - 15.04.2018

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?


Re: Como calcular a distancia entre 2 pontos? - narwn - 15.04.2018

PHP код:
FloatGetDistance2D(Floatx1Floaty1,  Floatz1Floatx2Floaty2Floatz2)
{
    return 
floatsqroot(
        
floatpower(floatabs(floatsub(x2x1)), 2.0) + 
        
floatpower(floatabs(floatsub(y2y1)), 2.0) + 
        
floatpower(floatabs(floatsub(z2z1)), 2.0)
    );




Re: Como calcular a distancia entre 2 pontos? - RodrigoMSR - 15.04.2018

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


Re: Como calcular a distancia entre 2 pontos? - willttoonn - 15.04.2018

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))));



Re: Como calcular a distancia entre 2 pontos? - JohnBlack - 15.04.2018

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);



Re: Como calcular a distancia entre 2 pontos? - AdrianoStk - 16.04.2018

Valeu Pessoal! Consegui!

OBS Estava querendo saber para fazer o teste de desempenho!