Skip to content

Instantly share code, notes, and snippets.

@commy2
Last active April 19, 2018 16:51
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save commy2/68751926eeb7eecaa2b1bc4b4951bf65 to your computer and use it in GitHub Desktop.
Save commy2/68751926eeb7eecaa2b1bc4b4951bf65 to your computer and use it in GitHub Desktop.
private _pointA = _origin getPos [_radius, 0];
private _pointB = _origin getPos [_radius, 72];
private _pointC = _origin getPos [_radius, 144];
private _pointD = _origin getPos [_radius, 216];
private _pointE = _origin getPos [_radius, 288];
private _vecAC = _pointC vectorDiff _pointA;
private _vecEB = _pointB vectorDiff _pointE;
private _r =
(_vecEB#0 * _pointA#1 + _vecEB#1 * _pointE#0 - _vecEB#0 * _pointE#1 - _vecEB#1 * _pointA#0) /
(_vecEB#1 * _vecAC#0 - _vecEB#0 * _vecAC#1);
private _edgeAB = _pointA vectorAdd (_vecAC vectorMultiply _r);
private _edgeDistance = _edgeAB distance2D _origin;
private _edgeAngle = _origin getDir _edgeAB;
private _edgeBC = _origin getPos [_edgeDistance, _edgeAngle + 72];
private _edgeCD = _origin getPos [_edgeDistance, _edgeAngle + 144];
private _edgeDE = _origin getPos [_edgeDistance, _edgeAngle + 216];
private _edgeEA = _origin getPos [_edgeDistance, _edgeAngle + 288];
private "_position";
while {
_position = _origin getPos [_radius * sqrt random 1, random 360];
!(_position inPolygon [
_pointA, _edgeAB,
_pointB, _edgeBC,
_pointC, _edgeCD,
_pointD, _edgeDE,
_pointE, _edgeEA
]);
} do {};
_position
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment