Example Code: Random Area Distribution: Difference between revisions
Jump to navigation
Jump to search
Lou Montana (talk | contribs) m (Text replacement - "|arma|" to "|arma1|") |
Lou Montana (talk | contribs) m (Text replacement - "\{\{( *)Informative( *)\|" to "{{$1Feature$2|$2Informative$2|") |
||
Line 5: | Line 5: | ||
{{ArgTitle|{{arma3}}|2|{{GVI|arma3|1.55}}}} | {{ArgTitle|{{arma3}}|2|{{GVI|arma3|1.55}}}} | ||
{{Informative | | {{Feature | Informative | | ||
* {{Inline code|object [[getPos]] [distance, direction]}} has been introduced in {{GVI|arma3|1.55}} | * {{Inline code|object [[getPos]] [distance, direction]}} has been introduced in {{GVI|arma3|1.55}} | ||
* Gaussian {{Inline code|[[random]] [min, mid, max]}} has been introduced in {{GVI|arma3|1.55}} | * Gaussian {{Inline code|[[random]] [min, mid, max]}} has been introduced in {{GVI|arma3|1.55}} | ||
Line 32: | Line 32: | ||
{{ArgTitle|{{arma2}}|2|{{GVI|arma2|1.03}}}} | {{ArgTitle|{{arma2}}|2|{{GVI|arma2|1.03}}}} | ||
{{Informative | | {{Feature | Informative | | ||
* [[getPosATL]] has been introduced in {{GVI|arma2|1.03}} | * [[getPosATL]] has been introduced in {{GVI|arma2|1.03}} | ||
}} | }} | ||
Line 54: | Line 54: | ||
{{ArgTitle|{{arma1}} / {{ofpr}}|2|{{GVI|arma1|1.00}} {{GVI|ofpr|1.85}}}} | {{ArgTitle|{{arma1}} / {{ofpr}}|2|{{GVI|arma1|1.00}} {{GVI|ofpr|1.85}}}} | ||
{{Informative | | {{Feature | Informative | | ||
* [[getPosASL]] has been introduced in {{GVI|arma1|1.00}} | * [[getPosASL]] has been introduced in {{GVI|arma1|1.00}} | ||
}} | }} | ||
Line 76: | Line 76: | ||
{{ArgTitle|{{ofp}}|2|{{GVI|ofp|1.00}}}} | {{ArgTitle|{{ofp}}|2|{{GVI|ofp|1.00}}}} | ||
{{Informative | This is an [[SQS syntax]] example.}} | {{Feature | Informative | This is an [[SQS syntax]] example.}} | ||
[[private]] ["_center", "_radius", "_angle", "_distance", "_offset", "_position"] {{cc|private definitions}} | [[private]] ["_center", "_radius", "_angle", "_distance", "_offset", "_position"] {{cc|private definitions}} |
Revision as of 00:03, 7 February 2021
Originally from Commy2's forum post, also fully translated on Dedmen's sqf.ovh post.
2
private _center = getPosATL player; // disc center definition private _radius = 50; // radius definition // random radius private _angle = random 360; // angle definition (0..360) private _distance = random _radius; // distance from the center definition (0..radius) private _position = _center getPos [_distance, _angle]; // random position private _angle = random 360; // angle definition (0..360) private _randomSquareRoot = sqrt random 1; // random square-root to obtain a non-linear 0..1 value private _distance = _radius * _randomSquareRoot; // distance from the center definition (0..radius) private _position = _center getPos [_distance, _angle]; // Gaussian normal distribution private _angleHalf = random 180; private _randomGauss = random [-1, 0, 1]; private _distance = _radius * _randomGauss; private _position = _center getPos [_distance, _angleHalf];
2
private ["_center", "_radius", "_angle", "_distance", "_offset", "_position"]; // private definitions _center = getPosATL player; // disc center definition private _radius = 50; // radius definition // random radius _angle = random 360; _distance = random _radius; _offset = [sin _angle * _distance, cos _angle * _distance, 0]; _position = [_center, _offset] call BIS_fnc_vectorAdd; // random position _angle = random 360; _distance = _radius * sqrt random 1; _offset = [sin _angle * _distance, cos _angle * _distance, 0]; _position = [_center, _offset] call BIS_fnc_vectorAdd;
private ["_center", "_radius", "_angle", "_distance", "_offset", "_position"]; // private definitions _center = getPos player; // disc center definition - getPosASL can be used in Armed Assault private _radius = 50; // radius definition // random radius _angle = random 360; _distance = random _radius; _offset = [sin _angle * _distance, cos _angle * _distance]; _position = [(_center select 0) + (_offset select 0), (_center select 1) + (_offset select 1)]; // random position _angle = random 360; _distance = _radius * sqrt random 1; _offset = [sin _angle * _distance, cos _angle * _distance, 0]; _position = [(_center select 0) + (_offset select 0), (_center select 1) + (_offset select 1)];
2
private ["_center", "_radius", "_angle", "_distance", "_offset", "_position"] // private definitions _center = getPos player // disc center definition _radius = 50 // radius definition // random radius _angle = random 360 _distance = random _radius _offset = [sin _angle * _distance, cos _angle * _distance] _position = [(_center select 0) + (_offset select 0), (_center select 1) + (_offset select 1)] // random position _angle = random 360 _distance = _radius * sqrt random 1 _offset = [sin _angle * _distance, cos _angle * _distance, 0] _position = [(_center select 0) + (_offset select 0), (_center select 1) + (_offset select 1)]