distanceSqr: Difference between revisions
Jump to navigation
Jump to search
m (see also: distance) |
m (2.16 -> 2.18) |
||
(52 intermediate revisions by 5 users not shown) | |||
Line 1: | Line 1: | ||
{{ | {{RV|type=command | ||
| arma3 |= | |game1= arma3 | ||
|version1= 0.50 | |||
| | |gr1= Math - Geometry | ||
| Computes the distance | |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]] | ||
|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= <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= <sqf> | |||
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; | |||
</sqf> | |||
<!-- KK, your turn! | |||
If normal 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