distanceSqr: Difference between revisions
Jump to navigation
Jump to search
m (Text replacement - "{{GameCategory|arma3|New Scripting Commands}} {{GameCategory|arma3|Scripting Commands}} {{uc:{{PAGENAME}}}}" to "") |
m (2.16 -> 2.18) |
||
(29 intermediate revisions by 2 users not shown) | |||
Line 1: | Line 1: | ||
{{RV|type=command | {{RV|type=command | ||
| arma3 | |game1= arma3 | ||
|version1= 0.50 | |||
|0.50 | |||
|gr1= Math - Geometry | |gr1= Math - Geometry | ||
| Computes the | |descr= Computes the {{Link|https://en.wikipedia.org/wiki/Euclidean_distance#Squared_Euclidean_distance|squared distance}} between two objects or positions. | ||
This command is faster than {{Link|distance}} by saving a {{Link|sqrt|square root}} operation, useful for mass-checking distance without the need of the distance value itself. | |||
| var1 | |s1= var1 [[distanceSqr]] var2 | ||
|p1= var1: [[Object]] or [[Position]] | |p1= var1: [[Object]] or [[Position]] | ||
Line 15: | Line 15: | ||
|p2= var2: [[Object]] or [[Position]] | |p2= var2: [[Object]] or [[Position]] | ||
| [[Number]] | |r1= [[Number]] - distance in meters or 1e10 if distance cannot be calculated | ||
|s2= a [[distanceSqr]] b | |||
|s2since= arma3 2.18 | |||
|p21= a: [[Number]] | |||
|p22= b: [[Number]] | |||
|r2= [[Number]] - distance c calculated as <sqf inline>c = a * a + b * b</sqf> | |||
|x1= < | |x1= <sqf> | ||
private _distanceSquared = 5 * 5; | |||
if (player distanceSqr leader player < _distanceSquared) then // similar to player distance leader player < 5 | |||
{ | |||
hint "You are less than 5m from the leader!"; | |||
}; | |||
</sqf> | |||
|x2= < | |x2= <sqf> | ||
_distanceSqr = (x2 - x1) ^ 2 + (y2 - y1) ^ 2 + (z2 - z1) ^ 2; | private _distance = sqrt ((x2 - x1) ^ 2 + (y2 - y1) ^ 2 + (z2 - z1) ^ 2); | ||
_distance = [x1, y1, z1] | private _distanceSqr = (x2 - x1) ^ 2 + (y2 - y1) ^ 2 + (z2 - z1) ^ 2; | ||
_distanceSqr = [x1, y1, z1] | _distance = [x1, y1, z1] distance [x2, y2, z2]; | ||
_distance = | _distanceSqr = [x1, y1, z1] distanceSqr [x2, y2, z2]; | ||
_distanceSqr = ([x1, y1, z1] | _distance = sqrt ([x1, y1, z1] distanceSqr [x2, y2, z2]); | ||
_distanceSqr = ([x1, y1, z1] distance [x2, y2, z2]) ^ 2; | |||
</sqf> | |||
<!-- KK, your turn! | |||
If normal distance is calculated according to this formula: | If normal distance is calculated according to this formula: | ||
squared distance is calculated according to this formula: | squared distance is calculated according to this formula: | ||
--> | |||
|seealso= [[distance]] [[vectorDistanceSqr]] [[distance2D]] | |||
}} | }} |
Latest revision as of 15:07, 8 February 2024
Description
- Description:
- Computes the squared distance between two objects or positions. This command is faster than distance by saving a square root operation, useful for mass-checking distance without the need of the distance value itself.
- Groups:
- Math - Geometry
Syntax
- Syntax:
- var1 distanceSqr var2
- Parameters:
- var1: Object or Position
- var2: Object or Position
- Return Value:
- Number - distance in meters or 1e10 if distance cannot be calculated
Alternative Syntax
- Syntax:
- a distanceSqr b
- Parameters:
- a: Number
- b: Number
- Return Value:
- Number - distance c calculated as c = a * a + b * b
Examples
- Example 1:
- Example 2:
- private _distance = sqrt ((x2 - x1) ^ 2 + (y2 - y1) ^ 2 + (z2 - z1) ^ 2); private _distanceSqr = (x2 - x1) ^ 2 + (y2 - y1) ^ 2 + (z2 - z1) ^ 2; _distance = [x1, y1, z1] distance [x2, y2, z2]; _distanceSqr = [x1, y1, z1] distanceSqr [x2, y2, z2]; _distance = sqrt ([x1, y1, z1] distanceSqr [x2, y2, z2]); _distanceSqr = ([x1, y1, z1] distance [x2, y2, z2]) ^ 2;
Additional Information
- See also:
- distance vectorDistanceSqr distance2D
Notes
-
Report bugs on the Feedback Tracker and/or discuss them on the Arma Discord or on the Forums.
Only post proven facts here! Add Note