Пример #1
0
 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);
     }
 }
Пример #2
0
        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;
        }
Пример #3
0
        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);
        }
Пример #4
0
        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;
        }
Пример #5
0
        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);
        }
Пример #6
0
 //--------------------------------------------------------------------------------------------
 // Sloped Distribution
 //--------------------------------------------------------------------------------------------
 public float DistributionRangeSlope(float min, float max, float skew, DistributionDirection direction)
 {
     return min + DistributionSloped(skew, direction) * (max - min);
 }
Пример #7
0
 //--------------------------------------------------------------------------------------------
 // Exponential Distribution
 //--------------------------------------------------------------------------------------------
 public float DistributionExponentialRange(float min, float max, float exponent, DistributionDirection direction)
 {
     return min + DistributionExponential(exponent, direction) * (max - min);
 }
Пример #8
0
        //--------------------------------------------------------------------------------------------
        // Sloped Distribution
        //--------------------------------------------------------------------------------------------

        public float DistributionRangeSlope(float min, float max, float skew, DistributionDirection direction)
        {
            return(min + DistributionSloped(skew, direction) * (max - min));
        }
Пример #9
0
        //--------------------------------------------------------------------------------------------
        // Exponential Distribution
        //--------------------------------------------------------------------------------------------

        public float DistributionExponentialRange(float min, float max, float exponent, DistributionDirection direction)
        {
            return(min + DistributionExponential(exponent, direction) * (max - min));
        }