Exemplo n.º 1
0
        public static float[] RandomUnitVector3()
        {
            float x   = Rand.Float(-1, 1);
            float y   = Rand.Float(-1, 1);
            float z   = Rand.Float(-1, 1);
            float len = (float)Math.Sqrt(x * x + y * y + z * z);

            return(new float[] { x / len, y / len, z / len });
        }
Exemplo n.º 2
0
        public static float[] RandomizeInMinMax(this float[] center, MinMax minmax)
        {
            float x = Rand.Float(minmax.Min.X, minmax.Max.X);
            float y = Rand.Float(minmax.Min.Y, minmax.Max.Y);
            float z = Rand.Float(minmax.Min.Z, minmax.Max.Z);

            float[] arr    = new float[] { x, y, z };
            float[] result = new float[center.Length];
            for (int i = 0; i < result.Length; i++)
            {
                result[i] = center[i] + arr[i];
            }
            return(result);
        }
Exemplo n.º 3
0
        public static float[] RandomizeInRadius(this float[] center, float radius)
        {
            float val = Rand.Float(radius);

            float[] vec = CommonUtils.RandomUnitVector3();
            for (int i = 0; i < vec.Length; i++)
            {
                vec[i] *= val;
            }

            float[] result = new float[center.Length];
            for (int i = 0; i < result.Length; i++)
            {
                result[i] = center[i] + vec[i];
            }
            return(result);
        }