Esempio n. 1
0
        // Returns a fully randomized shape
        public static Shape GenerateShape()
        {
            // Returned shape
            Shape shape = null;

            var num = RNG.Next(0, 7);

            switch (num)
            {
            case 0:                     // Circle
            {
                var radius = GetRandomValue();
                var cen    = new Vector2()
                {
                    X = GetRandomValue(),
                    Y = GetRandomValue()
                };

                shape = new Circle(cen, radius);

                break;
            }

            case 1:                     // Rectangle
            {
                var size = new Vector2()
                {
                    X = GetRandomValue(),
                    Y = GetRandomValue()
                };
                var cen = new Vector2()
                {
                    X = GetRandomValue(),
                    Y = GetRandomValue()
                };

                shape = new Rectangle(cen, size);

                break;
            }

            case 2:                     // Square
            {
                var width = GetRandomValue();
                var cen   = new Vector2()
                {
                    X = GetRandomValue(),
                    Y = GetRandomValue()
                };

                shape = new Rectangle(cen, width);

                break;
            }

            case 3:                     // Triangle
            {
                var p1 = new Vector2
                {
                    X = GetRandomValue(),
                    Y = GetRandomValue()
                };
                var p2 = new Vector2
                {
                    X = GetRandomValue(),
                    Y = GetRandomValue()
                };
                var p3 = new Vector2
                {
                    X = GetRandomValue(),
                    Y = GetRandomValue()
                };

                shape = new Triangle(p1, p2, p3);

                break;
            }

            case 4:                     //Cuboid
            {
                var size = new Vector3()
                {
                    X = GetRandomValue(),
                    Y = GetRandomValue(),
                    Z = GetRandomValue()
                };
                var cen = new Vector3()
                {
                    X = GetRandomValue(),
                    Y = GetRandomValue(),
                    Z = GetRandomValue()
                };

                shape = new Cuboid(cen, size);

                break;
            }

            case 5:                     // Cube
            {
                var width = GetRandomValue();
                var cen   = new Vector3()
                {
                    X = GetRandomValue(),
                    Y = GetRandomValue(),
                    Z = GetRandomValue()
                };

                shape = new Cuboid(cen, width);

                break;
            }

            case 6:                     // Sphere
            {
                var radius = GetRandomValue();
                var cen    = new Vector3()
                {
                    X = GetRandomValue(),
                    Y = GetRandomValue(),
                    Z = GetRandomValue()
                };

                shape = new Sphere(cen, radius);

                break;
            }
            }

            return(shape);
        }
Esempio n. 2
0
        // Returns a partially randomized shape
        public static Shape GenerateShape(Vector3 center)
        {
            // Returned shape
            Shape shape = null;

            var num = RNG.Next(0, 7);

            switch (num)
            {
            case 0:                     // Circle
            {
                var radius = GetRandomValue();
                var ctr    = new Vector2()
                {
                    X = center.X,
                    Y = center.Y
                };

                shape = new Circle(ctr, radius);

                break;
            }

            case 1:                     // Rectangle
            {
                var size = new Vector2()
                {
                    X = GetRandomValue(),
                    Y = GetRandomValue()
                };
                var ctr = new Vector2()
                {
                    X = center.X,
                    Y = center.Y
                };

                shape = new Rectangle(ctr, size);

                break;
            }

            case 2:                     // Square
            {
                var width = GetRandomValue();
                var ctr   = new Vector2()
                {
                    X = center.X,
                    Y = center.Y
                };

                shape = new Rectangle(ctr, width);

                break;
            }

            case 3:                     // Triangle
            {
                var p1 = new Vector2
                {
                    X = GetRandomValue(),
                    Y = GetRandomValue()
                };
                var p2 = new Vector2
                {
                    X = GetRandomValue(),
                    Y = GetRandomValue()
                };

                // Calculate 3rd point, so that center will be what was given as parameter
                // Center.X = (P1.X + P2.X + P3.X) / 3f => P3.X = 3f * Center.X - P1.X - P2.X
                var p3 = new Vector2()
                {
                    X = 3 * center.X - p1.X - p2.X,
                    Y = 3 * center.Y - p1.Y - p2.Y
                };

                shape = new Triangle(p1, p2, p3);

                break;
            }

            case 4:                     // Cuboid
            {
                var size = new Vector3()
                {
                    X = GetRandomValue(),
                    Y = GetRandomValue(),
                    Z = GetRandomValue()
                };

                shape = new Cuboid(center, size);

                break;
            }

            case 5:                     // Cube
            {
                var width = GetRandomValue();

                shape = new Cuboid(center, width);

                break;
            }

            case 6:                     // Sphere
            {
                var radius = GetRandomValue();

                shape = new Sphere(center, radius);

                break;
            }
            }

            return(shape);
        }