Пример #1
0
        public static Vec2 GetRandom()
        {
            double theta = MathX.TWO_PI * MathX.GetRandom();
            Vec2   nv;

            nv.x = Math.Sin(theta);
            nv.y = Math.Cos(theta);
            return(nv);
        }
Пример #2
0
        public static Vec3 GetRandom()
        {
            double theta = MathX.TWO_PI * MathX.GetRandom();
            double phi   = Math.Acos(MathX.GetRandom(-1, 1));
            Vec3   nv;

            nv.x = Math.Sin(theta) * Math.Sin(phi);
            nv.y = Math.Cos(theta) * Math.Sin(phi);
            nv.z = Math.Cos(phi);
            return(nv);
        }
Пример #3
0
        public static Vec4 GetRandom()
        {
            //Not even
            double theta = MathX.TWO_PI * MathX.GetRandom();
            double phi   = Math.Acos(MathX.GetRandom(-1, 1));
            double rho   = Math.Acos(MathX.GetRandom(-1, 1));
            Vec4   nv;

            nv.x = Math.Sin(theta) * Math.Sin(phi) * Math.Sin(rho);
            nv.y = Math.Cos(theta) * Math.Sin(phi) * Math.Sin(rho);
            nv.z = Math.Cos(phi) * Math.Sin(rho);
            nv.w = Math.Cos(rho);
            return(nv);
        }
Пример #4
0
        public static Quat GetRandom()
        {
            double a = MathX.GetRandom(-MathX.TWO_PI, MathX.TWO_PI);

            return(FromAngleAxis(a, Vec3.GetRandom()));
        }