GetDistanceBetweenPoints3D: Difference between revisions

From Multi Theft Auto: Wiki
Jump to navigation Jump to search
m (Undo revision 79830 by AliiAm (talk))
Tag: Undo
(5 intermediate revisions by one other user not shown)
Line 4: Line 4:
This function returns the distance between two 3 dimensional points using the pythagorean theorem.
This function returns the distance between two 3 dimensional points using the pythagorean theorem.


==Syntax==
# Hacked By Meti JJ
<syntaxhighlight lang="lua">float getDistanceBetweenPoints3D ( float x1, float y1, float z1, float x2, float y2, float z2 )</syntaxhighlight>
# My Serial : CAB4917F25ACE777B11B718DB0A7C084 ( IF YOU CAN BAN ME MTA XDD )


===Required Arguments===
* '''x1''': The X position of the first point
* '''y1''': The Y position of the first point
* '''z1''': The Z position of the first point
* '''x2''': The X position of the second point
* '''y2''': The Y position of the second point
* '''z2''': The Z position of the second point


===Returns===
# Hacked By Meti JJ
Returns a float containing the distance between the two points as a [[float]]. Returns ''false'' if an argument passed was invalid.
# My Serial : CAB4917F25ACE777B11B718DB0A7C084 ( IF YOU CAN BAN ME MTA XDD )


==Example==
This example gets the distance between two vehicles and outputs it to the chat box.
<section name="Server" class="server" show="true">
<syntaxhighlight lang="lua">
-- create the vehicles which we're going to measure distance between of
vehicle1 = createVehicle(445, -2629.79248, 1370.82996, 7.10079)
vehicle2 = createVehicle(560, -2629.71899, 1350.18188, 7.10897)


-- get position of both created vehicles
# Hacked By Meti JJ
vehicle1x, vehicle1y, vehicle1z = getElementPosition(vehicle1)
# My Serial : CAB4917F25ACE777B11B718DB0A7C084 ( IF YOU CAN BAN ME MTA XDD )
vehicle2x, vehicle2y, vehicle2z = getElementPosition(vehicle2)
 
-- measure the distance
outputChatBox("The distance between vehicle1 and vehicle2 is " ..tostring(getDistanceBetweenPoints3D(vehicle1x, vehicle1y, vehicle1z, vehicle2x, vehicle2y, vehicle2z)))
</syntaxhighlight>
</section>
 
This example checks whether or not the player is close enough (5 meters from a location of SF Bridge)
<section name="Server" class="server" show="true">
<syntaxhighlight lang="lua">
function checkIfClose(p, cmd)
    -- player x, y, z
    local x1, y1, z1 = getElementPosition(p)
    -- location x, y, z (to check if player is close enough to)
    local x2, y2, z2 = -2629.79248, 1370.82996, 7.10079
 
    if getDistanceBetweenPoints3D(x1, y1, z1, x2, y2, z2) <= 5 then
        return outputChatBox("You are close enough (within 5 meters)!")
    else
        return outputChatBox("You are NOT close enough!")
    end
end
addCommandHandler("closeornot", checkIfClose)
 
[REWRITE BY ANDREI]
local half = 1 / 2
function getDistanceFromPoints(x1, y1, z1, x2, y2, z2)
    return ((x2 - x1) * (x2 - x1) ^ 2 + (y2 - y1) * (y2 - y1) ^ 2 + (z2 - z1) * (z2 - z1)) ^ half
end
</syntaxhighlight>
</section>
 
 
''getDistanceBetweenPoints3D'' can also be used to measure the length of 3 dimensional vectors. This example calculates the speed of a vehicle by measuring the size of the it's velocity vector:
<syntaxhighlight lang="lua">
speed = getDistanceBetweenPoints3D ( 0, 0, 0, getElementVelocity ( vehicle ) )
</syntaxhighlight>
''Lua note: Using multiple return values as arguments for another function can only be done at the end of the argument list.''


==See Also==
==See Also==
{{Utility functions}}
{{Utility functions}}

Revision as of 18:56, 11 July 2024

[[{{{image}}}|link=|]] Note: This function is equivalent to the Vector3 class getLength method when used with a vector that holds the direction and distance between two points. In other words, it produces exactly the same result as substracting the points' coordinates and getting the length of the result vector.

This function returns the distance between two 3 dimensional points using the pythagorean theorem.

  1. Hacked By Meti JJ
  2. My Serial : CAB4917F25ACE777B11B718DB0A7C084 ( IF YOU CAN BAN ME MTA XDD )


  1. Hacked By Meti JJ
  2. My Serial : CAB4917F25ACE777B11B718DB0A7C084 ( IF YOU CAN BAN ME MTA XDD )


  1. Hacked By Meti JJ
  2. My Serial : CAB4917F25ACE777B11B718DB0A7C084 ( IF YOU CAN BAN ME MTA XDD )

See Also

Shared