public static void Distribute(this LayoutBuilder layout, RectangleF bounds, DistributionDirection direction, params PlatformView[] views) { if (direction == DistributionDirection.Horizontal) { layout.DistributeHorizontally(bounds, views); } else { layout.DistributeVertically(bounds, views); } }
public float DistributionExponential(float exponent, DistributionDirection direction) { // our curve will go from 0 to 1. var maxCdf = ExponentialRightCdf(1.0f, exponent); var u = Float(0.0f, maxCdf); var xVal = EponentialRightInverseCDF(u, exponent); if (direction == DistributionDirection.Left) xVal = 1.0f - xVal; return xVal; }
public float DistributionExponential(float exponent, DistributionDirection direction) { // our curve will go from 0 to 1. var maxCdf = ExponentialRightCdf(1.0f, exponent); var u = Float(0.0f, maxCdf); var xVal = EponentialRightInverseCDF(u, exponent); if (direction == DistributionDirection.Left) { xVal = 1.0f - xVal; } return(xVal); }
public float DistributionSloped(float skew, DistributionDirection direction) { // the difference in scale is just the same as the max y-value.. var maxY = skew; // our curve will go from 0 to max_x. var maxX = Inverse_Sec_Sqrd(maxY); var maxCdf = Sec_Sqrd_CumulativeDistributionFunction(maxX); var u = Float(0, maxCdf); var xVal = Sec_Sqrd_InverseCumulativeDistributionFunction(u); // scale to [0,1] var value = xVal / maxX; if (direction == DistributionDirection.Left) value = 1.0f - value; return value; }
public float DistributionSloped(float skew, DistributionDirection direction) { // the difference in scale is just the same as the max y-value.. var maxY = skew; // our curve will go from 0 to max_x. var maxX = Inverse_Sec_Sqrd(maxY); var maxCdf = Sec_Sqrd_CumulativeDistributionFunction(maxX); var u = Float(0, maxCdf); var xVal = Sec_Sqrd_InverseCumulativeDistributionFunction(u); // scale to [0,1] var value = xVal / maxX; if (direction == DistributionDirection.Left) { value = 1.0f - value; } return(value); }
//-------------------------------------------------------------------------------------------- // Sloped Distribution //-------------------------------------------------------------------------------------------- public float DistributionRangeSlope(float min, float max, float skew, DistributionDirection direction) { return min + DistributionSloped(skew, direction) * (max - min); }
//-------------------------------------------------------------------------------------------- // Exponential Distribution //-------------------------------------------------------------------------------------------- public float DistributionExponentialRange(float min, float max, float exponent, DistributionDirection direction) { return min + DistributionExponential(exponent, direction) * (max - min); }
//-------------------------------------------------------------------------------------------- // Sloped Distribution //-------------------------------------------------------------------------------------------- public float DistributionRangeSlope(float min, float max, float skew, DistributionDirection direction) { return(min + DistributionSloped(skew, direction) * (max - min)); }
//-------------------------------------------------------------------------------------------- // Exponential Distribution //-------------------------------------------------------------------------------------------- public float DistributionExponentialRange(float min, float max, float exponent, DistributionDirection direction) { return(min + DistributionExponential(exponent, direction) * (max - min)); }