Random¶
Random number generation utilities and weighted random point functions.
ERandomDir¶
Direction bias for random number generation (LEFT, MEAN, RIGHT).
ERandomDistribution¶
Distribution type for random generation (RANDOM or GAUSS).
RandomBoolean¶
function RandomBoolean(): Boolean;
function RandomBoolean(probability: Double): Boolean; overload;
Returns a random boolean. Optionally weighted by probability (0.0-1.0).
Sleep (overload)¶
procedure Sleep(min, max: UInt32; dir: ERandomDir = ERandomDir.LEFT); overload;
Sleeps for a random duration between min and max, biased by direction.
TPoint.RandomBetween¶
function TPoint.RandomBetween(other: TPoint): TPoint;
Returns a random point on the line between Self and other.
TPointArray.RandomMean¶
function TPointArray.RandomMean(): TPoint;
Returns a random point from the array, weighted towards the mean.
TCircle.RandomSkewedPoint¶
function TCircle.RandomSkewedPoint(from: TPoint; force: Double = 0.35): TPoint;
Generates a random point within the circle, skewed towards from.
TCircle.RandomWeightedPoint¶
function TCircle.RandomWeightedPoint(from: TPoint; weight: Single = 10.0; bias: Single = 1): TPoint;
Generates a random point within the circle, weighted towards from.
Credits: slacky
TTriangle.RandomSkewedPoint¶
function TTriangle.RandomSkewedPoint(from: TPoint; force: Double = 0.35): TPoint;
Generates a random point within the triangle, skewed towards from.
RandomWeightedPoint¶
function TTriangle.RandomWeightedPoint(from: TPoint; weight: Single = 10.0; bias: Single=1): TPoint;
function TPolygon.RandomWeightedPoint(from: TPoint; weight: Single = 10.0; bias: Single=1): TPoint;
function TQuad.RandomWeightedPoint(from: TPoint; weight: Single = 10.0; bias: Single=1): TPoint;
function TBox.RandomWeightedPoint(from: TPoint; weight: Single = 10.0; bias: Single=1): TPoint;
Generates a random point within the TTriangle, drawn towards a from point.
Parameters:
from: The point towards which the distribution is drawn.
weight: Controls the strength of attraction towards the
from(higher values = stronger attraction).weight = 0 gives a uniform distribution.
bias: Introduces a Gaussian spread around the
from(higher values = wider spread).bias = 0 gives a purely weighted distribution towards the
from.
Should expose weight and bias to the user if used as mouse distribution method.
Credits: slacky
TPolygon.RandomPoint¶
function TPolygon.RandomPoint(): TPoint;
Generates a uniformly distributed random point within the polygon.
Credits: torwent
TPolygon.RandomPointCenter¶
function TPolygon.RandomPointCenter(): TPoint;
Generates a random point within the polygon, weighted towards the center.
Credits: bootie
TPolygon.RandomSkewedPoint¶
function TPolygon.RandomSkewedPoint(from: TPoint): TPoint;
Generates a random point within the polygon, skewed towards from.
TQuad.RandomSkewedPoint¶
function TQuad.RandomSkewedPoint(from: TPoint; force: Double = 0.35): TPoint;
Generates a random point within the bounds of the TQuad, the point generated is skewed towards towards the from-point.
The last parameter force defines how much the generated point is to be skewed towards or away from from - Expects value in the range 0..2
force = 0: Result weighs heavily towards the edge closest to
Fromforce = 1: Result in the middle of box is most common
force = 2: Result weighs heavily towards the edge furthest away from
From
TBox.RandomSkewedPoint¶
function TBox.RandomSkewedPoint(from: TPoint; force: Double = 0.35): TPoint;
Generates a random point within the bounds of the TBox, the point generated is skewed towards the from-point.
The last parameter force defines how much the generated point is to be skewed towards or away from from - Expects value in the range 0..2
force = 0: Result weighs heavily towards the edge closest to
Fromforce = 1: Result in the middle of box is most common
force = 2: Result weighs heavily towards the edge furthest away from
From