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 - "|arma|" to "|arma1|") |
||
Line 53: | Line 53: | ||
{{ArgTitle|{{arma1}} / {{ofpr}}|2|{{GVI| | {{ArgTitle|{{arma1}} / {{ofpr}}|2|{{GVI|arma1|1.00}} {{GVI|ofpr|1.85}}}} | ||
{{Informative | | {{Informative | | ||
* [[getPosASL]] has been introduced in {{GVI| | * [[getPosASL]] has been introduced in {{GVI|arma1|1.00}} | ||
}} | }} | ||
Revision as of 07:18, 26 December 2020
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)]