GetDistanceBetweenPoints3D: Difference between revisions
Jump to navigation
Jump to search
m (prefer normal note) |
Dutchman101 (talk | contribs) (Normalised examples column, improve an example, add an example) |
||
Line 20: | Line 20: | ||
==Example== | ==Example== | ||
This example gets the distance between two vehicles and outputs it to the chat box. | 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"> | <syntaxhighlight lang="lua"> | ||
vehicle1x, vehicle1y, vehicle1z = getElementPosition ( vehicle1 ) | -- create the vehicles which we're going to measure distance between of | ||
vehicle2x, vehicle2y, vehicle2z = getElementPosition ( vehicle2 ) | vehicle1 = createVehicle(445, -2629.79248, 1370.82996, 7.10079) | ||
outputChatBox ( "The distance between vehicle1 and vehicle2 is "..tostring(getDistanceBetweenPoints3D ( vehicle1x, vehicle1y, vehicle1z, vehicle2x, | vehicle2 = createVehicle(560, -2629.71899, 1350.18188, 7.10897) | ||
-- get position of both created vehicles | |||
vehicle1x, vehicle1y, vehicle1z = getElementPosition(vehicle1) | |||
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) | |||
</syntaxhighlight> | |||
</section> | |||
Revision as of 14:30, 31 May 2021
This function returns the distance between two 3 dimensional points using the pythagorean theorem.
Syntax
float getDistanceBetweenPoints3D ( float x1, float y1, float z1, float x2, float y2, float z2 )
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
Returns a float containing the distance between the two points as a float. Returns false if an argument passed was invalid.
Example
This example gets the distance between two vehicles and outputs it to the chat box.
Click to collapse [-]
Server-- 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 vehicle1x, vehicle1y, vehicle1z = getElementPosition(vehicle1) vehicle2x, vehicle2y, vehicle2z = getElementPosition(vehicle2) -- measure the distance outputChatBox("The distance between vehicle1 and vehicle2 is " ..tostring(getDistanceBetweenPoints3D(vehicle1x, vehicle1y, vehicle1z, vehicle2x, vehicle2y, vehicle2z)))
This example checks whether or not the player is close enough (5 meters from a location of SF Bridge)
Click to collapse [-]
Serverfunction 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)
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:
speed = getDistanceBetweenPoints3D ( 0, 0, 0, getElementVelocity ( vehicle ) )
Lua note: Using multiple return values as arguments for another function can only be done at the end of the argument list.
See Also
- addDebugHook
- base64Decode
- base64Encode
- debugSleep
- decodeString
- encodeString
- fromJSON
- generateKeyPair
- getColorFromString
- getDevelopmentMode
- getDistanceBetweenPoints2D
- getDistanceBetweenPoints3D
- getEasingValue
- getNetworkStats
- getNetworkUsageData
- getPerformanceStats
- getRealTime
- getTickCount
- getTimerDetails
- getTimers
- getFPSLimit
- getUserdataType
- getVersion
- gettok
- isTransferBoxVisible
- setTransferBoxVisible
- hash
- inspect
- interpolateBetween
- iprint
- isOOPEnabled
- isTimer
- killTimer
- md5
- passwordHash
- passwordVerify
- pregFind
- pregMatch
- pregReplace
- removeDebugHook
- resetTimer
- setDevelopmentMode
- setFPSLimit
- setTimer
- ref
- deref
- sha256
- split
- teaDecode
- teaEncode
- toJSON
- tocolor
- getProcessMemoryStats
- utfChar
- utfCode
- utfLen
- utfSeek
- utfSub
- bitAnd
- bitNot
- bitOr
- bitXor
- bitTest
- bitLRotate
- bitRRotate
- bitLShift
- bitRShift
- bitArShift
- bitExtract
- bitReplace