Script - angle.sqf
Z Armed Assault nápověda
Jednoduchá funkce, která slouží ke zjištění úhlu mezi dvěma objekty. Vhodné například pro zjistění, jestli je nějaký voják natočený směrem k druhému vojákovi.
[editovat]
Použití
uhel = [vojak1,player] call compile loadFile "sqf\angle.sqf"
Vrácená hodnota bude úhel mezi hráčem a vojákem s názvem vojak1. Pokud by byl 0, znamenalo by to, že hráč je otočený směrem k vojákovi.
[editovat]
Script
_one = _this select 0;
_two = _this select 1;
_distancex = (position _two select 0) - (position _one select 0);
_distancey = (position _two select 1) - (position _one select 1);
_absgoniometry = abs(_distancex) + abs(_distancey);
_asinderived = _distancex / _absgoniometry;
_acosderived = _distancey / _absgoniometry;
_angle = 0;
if (_asinderived >= 0 && _acosderived >= 0) then {_angle = asin(_asinderived)};
if (_asinderived >= 0 && _acosderived < 0) then {_angle = 180 - asin(_asinderived)};
if (_asinderived < 0 && _acosderived < 0) then {_angle = 180 + abs(Asin(_asinderived))};
if (_asinderived < 0 && _acosderived >= 0) then {_angle = 360 - abs(Asin(_asinderived))};
abs(direction _one - _angle);

