Пример #1
0
        static void Main(string[] args)
        {
            #region Shapes

            var shapes = new IGeometricShape[] {
                new Rectangle {
                    Width = 3, Height = 4
                },
                new Rectangle {
                    Width = 4, Height = 5
                },
                new Rectangle {
                    Width = 5, Height = 6
                },
                new EquilateralTriangle {
                    SideLenght = 3
                }
            };

            var calculator = new ShapesCalculator();
            calculator.Calculate(shapes);
            Console.WriteLine($"Total area: {calculator.TotalAreas} \n" +
                              $"Total perimeter: {calculator.TotalPerimeters}");

            Console.ReadKey();

            #endregion
        }
Пример #2
0
        static void Main(string[] args)
        {
            //composition
            var rectcomp1 = new RectComp(3, 9);

            Console.WriteLine($"The Perimeter of the rectcomp1 is {rectcomp1.Perimeter()}");
            Console.WriteLine($"The Area of the rectcomp1 is {rectcomp1.Area()}");

            Quad fred = new Rectangle();

            Console.WriteLine($"Fred is a {fred.WhatAmI()}");

            var sqr1 = new Square(4);

            Console.WriteLine($"The Perimeter of the Square is {sqr1.Perimeter()}");
            Console.WriteLine($"The Area of the Square is {sqr1.Area()}");
            Console.WriteLine($"The sqr1 is a {sqr1.WhatAmI()}");

            var rect1 = new Rectangle(5, 3);

            Console.WriteLine($"The Perimeter of the Rectangle is {rect1.Perimeter()}");
            Console.WriteLine($"The Area of the Rectangle is {rect1.Area()}");
            Console.WriteLine($"The rect1 is a {rect1.WhatAmI()}");

            var quad1 = new Quad(3, 4, 5, 6);

            {
                //Side1 = 3
                //Side2 = 4
                //Side3 = 5
                //Side4 = 6
            }
            Console.WriteLine($"The Perimeter of the Quadrilateral is {quad1.Perimeter()}");
            Console.WriteLine($"The quad1 is a {quad1.WhatAmI()}");

            var collection = new Quad[]
            {
                fred, sqr1, rect1, quad1
            };

            foreach (var geo in collection)
            {
                Console.WriteLine($"Shape is {geo.WhatAmI()}");
                var hello = geo as Rectangle;
                if (hello != null)
                {
                    Console.WriteLine($"The area of Shape {hello.Area()}");
                }
            }

            var geoshapes = new IGeometricShape[]
            {
                new Circle(1), new Circle(2), new Rectangle(3, 7), new Square(5),
            };

            foreach (var shape in geoshapes)
            {
                Console.WriteLine($"The Perimeter is {shape.Perimeter()} The Area is {shape.Area()}");
            }
        }
Пример #3
0
        private static void Main(string[] args)
        {
            var figuras = new IGeometricShape[]
            {
                new Rectangle {
                    Width = 10, Height = 5
                },
                new EquilateralTriangle {
                    SideLength = 5
                },
                new Rectangle {
                    Width = 4, Height = 6
                },
                new Square {
                    SideLength = 10
                },
                new Rectangle {
                    Width = 8, Height = 9
                },
                new Square {
                    SideLength = 8
                },
                new EquilateralTriangle {
                    SideLength = 5
                }
            };

            var calculator = new GreatCalculator();

            calculator.Calculate(figuras);
            Console.WriteLine($"Área total: {calculator.TotalAreas}\nPerímetro total:{calculator.TotalPerimeters}");
            Console.ReadKey();
        }
Пример #4
0
        static void Main(string[] args)
        {
            var figuras = new IGeometricShape[] {
                new Rectangle {
                    Width = 10, Height = 5
                },
                new EquilateralTriangle {
                    SideLength = 10
                },
                new Square {
                    SideLength = 20
                },
                new Rectangle {
                    Width = 3, Height = 1
                },
                new Square {
                    SideLength = 32
                }
            };

            GreatCalculator calculator = new GreatCalculator();

            calculator.Calculate(figuras);

            Console.WriteLine("Suma de areas: " + calculator.TotalAreas);
            Console.WriteLine("Suma de perimetros: " + calculator.TotalPerimeters);

            Console.ReadKey();
        }
Пример #5
0
        public static void Main(string[] args)
        {
            var figures = new IGeometricShape[]
            {
                new Rectangle {
                    Width = 10, Height = 5
                },
                new EquilateralTriangle {
                    SideLength = 5
                },
                new Rectangle {
                    Width = 4, Height = 6
                },
                new Rectangle {
                    Width = 8, Height = 9
                },
                new EquilateralTriangle {
                    SideLength = 5
                }
            };

            var sumAreas      = AreaOperation.Sum(figures);
            var sumPerimeters = PerimeterOperation.Sum(figures);

            Console.WriteLine($"Total Area: {sumAreas}");
            Console.WriteLine($"Total Perimeters: {sumPerimeters}");

            Console.ReadKey();
        }
        public static double GetPerimeter(IGeometricShape shape)
        {
            Punct[] points         = shape.GetAllPoints();
            double  totalPerimeter = 0;

            if (points.Length > 2)
            {
                for (int i = 0; i < points.Length; i++)
                {
                    if (i == points.Length - 1)
                    {
                        totalPerimeter = totalPerimeter + DistanceBetween2Points(points[0], points[i]);
                    }
                    else
                    {
                        totalPerimeter = totalPerimeter + DistanceBetween2Points(points[i], points[i + 1]);
                    }
                }
            }
            else if (points.Length == 2)
            {
                totalPerimeter = totalPerimeter + DistanceBetween2Points(points[0], points[1]);
            }
            return(totalPerimeter);
        }
Пример #7
0
        static void Main(string[] args)
        {
            Quadrilaterial rect = new Rectangle();

            Console.WriteLine(rect.WhatAmI());

            var quad1 = new Quadrilaterial(3, 4, 6, 5);

            Console.WriteLine($"The Perimeter of the quad is {quad1.Perimeter()}");

            var rect1 = new Rectangle(5, 3);

            Console.WriteLine($"The Perimeter of the quad is {rect1.Perimeter()}");
            Console.WriteLine($"The Area of the quad is {rect1.Area()}");

            var sqr1 = new Square(4);

            Console.WriteLine($"The Perimeter of the quad is {sqr1.Perimeter()}");
            Console.WriteLine($"The Area of the quad is {sqr1.Area()}");
            Console.WriteLine($"The sqr1 is {sqr1.WhatAmI()}");
            Console.WriteLine($"The rect1 is {rect1.WhatAmI()}");
            Console.WriteLine($"The quad1 is {quad1.WhatAmI()}");

            var collection = new Quadrilaterial[] {
                rect, sqr1, rect1, quad1
            };

            foreach (Quadrilaterial shape in collection)
            {
                Console.WriteLine($"The shape is {shape.WhatAmI()}.");
            }
            //Working with Interfaces
            var geoShapes = new IGeometricShape[] {
                new Circle(1), new Circle(2), new Rectangle(3, 7), new Square(5)
            };

            var geoShapes2 = new IGeometricShape[2];

            geoShapes2[0] = new Circle(3);
            geoShapes2[1] = new Circle(4);
            geoShapes2.Prepend(new Circle(5));

            foreach (var shape in geoShapes)
            {
                Console.WriteLine($"The Perimiter is {shape.Perimeter()}. The area is {shape.Area()}");
            }

            var square = rect1 as Square;

            if (square is null)
            {
                Console.WriteLine("The value is null");
            }

            var rectComp = new RectComp(3, 9);

            Console.WriteLine($"The perimeter of rect comp is {rectComp.Perimeter()}");
            Console.WriteLine($"The Area of rect comp is {rectComp.Area()}");
        }
Пример #8
0
        static void Main(string[] args)
        {
            var rectComp = new RectComp(3, 9);

            Console.WriteLine($"The Perimeter of the rectComp is {rectComp.Perimeter()}");
            Console.WriteLine($"The Area of the rectComp is {rectComp.Area()}");

            Rect fred = new Rect(7, 11);

            Console.WriteLine($"Fred is a {fred.WhatAmI()}");

            Sqr sqr1 = new Sqr(4);

            Console.WriteLine($"The Perimeter of the sqr is {sqr1.Perimeter()}");
            Console.WriteLine($"The Area of the sqr is {sqr1.Area()}");
            Console.WriteLine($"The sqr1 is a {sqr1.WhatAmI()}");

            var rect1 = new Rect(5, 3);

            //int p = rect1.Perimeter();
            Console.WriteLine($"The Perimeter of the rect is {rect1.Perimeter()}");
            Console.WriteLine($"The Area of the rect is {rect1.Area()}");
            Console.WriteLine($"The rect1 is a {rect1.WhatAmI()}");

            var quad1 = new Quad(3, 4, 5, 6);

            Console.WriteLine($"The Perimeter of the quad is {quad1.Perimeter()}");
            Console.WriteLine($"The quad1 is a {quad1.WhatAmI()}");

            var collection = new Quad[] {
                fred, sqr1, rect1, quad1
            };

            foreach (var geo in collection)
            {
                Console.WriteLine($"geo is a {geo.WhatAmI()}");
                var rect = geo as Rect;
                if (rect != null)
                {
                    Console.WriteLine($"The area of geo is {rect.Area()}");
                }
            }

            var geoshapes = new IGeometricShape[] {
                new Circle(1), new Circle(2), new Rect(3, 7), new Sqr(5)
            };

            //var geoshapes2 = new IGeometricShape[2];
            //geoshapes2[0] = new Circle(3);
            //geoshapes2[1] = new Circle(4);

            foreach (var shape in geoshapes)
            {
                Console.WriteLine($"Perimeter: {shape.Perimeter()}, Area: {shape.Area()}");
            }
        }
        public static IGeometricShape ShapeMove(IGeometricShape shape, int dx, int dy)
        {
            Punct[] points = shape.GetAllPoints();
            for (int i = 0; i < points.Length; i++)
            {
                points[i].X = points[i].X + dx;
                points[i].Y = points[i].Y + dy;
            }



            return(shape);
        }
        public bool Intersects(IGeometricShape geometricShape, out List<Vector2D> points)
        {
            if (geometricShape.ShapeType == GeometricShapeTypes.Rectangle)
            {
                GameRectangle temp = (GameRectangle)geometricShape;
                return temp.Intersects(this, out points);
            } if (geometricShape.ShapeType == GeometricShapeTypes.Circle)
            {
                GameCircle circle = (GameCircle)geometricShape;
                points = GeometricAlgorithms.IntersectCircles(this, circle);
                return points.Count > 0;
            }

            throw new NotImplementedException();
        }
Пример #11
0
        static void Main(string[] args)
        {
            var figuras = new IGeometricShape[]
            {
                new Square {
                    SideLength = 10
                },
                new EquilateralTriangle {
                    SideLength = 5
                }
            };
            var calculator = new GreatCalculator();

            calculator.Calculate(figuras);
            Console.WriteLine($"Area Total:{calculator.TotalAreas} ");
        }
Пример #12
0
        static void Main(string[] args)
        {
            //This is the object that will make the shapes.
            ShapeFactory fact = new ShapeFactory();
            //This is a shape, at first the shape will be line.
            IGeometricShape shape = fact.getShape((ShapeFactory.ShapeType) 0);

            shape.draw();

            for (int i = 1; i < Enum.GetValues(typeof(ShapeFactory.ShapeType)).Length; i++)
            {
                shape = fact.getShape((ShapeFactory.ShapeType)i);
                //if shape name does not exist.
                if (shape == null)
                {
                    Console.WriteLine("SHAPE " + (ShapeFactory.ShapeType)i + " NOT FOUND.");
                }
                else
                {
                    shape.draw();
                }
            }
        }
 public GeometricShapeToShapeAdapter(IGeometricShape geometricShape)
 {
     this.geometricShape = geometricShape;
 }
Пример #14
0
 public FreeShape(ContextManager manager, PointCollectionGeometry geom) : base(manager)
 {
     BaseShape = geom;
 }
Пример #15
0
 public FormaGeometrica(EGeometricShapes eGeometricShapes, decimal side1, decimal?side2, decimal?base1, decimal?base2, decimal?height)
 {
     _iGeometricShape = GeometricShapeFactory.GetGeometricShape(eGeometricShapes, side1, side2, base1, base2, height);
 }
        /// <summary>
        /// Дали правоаголникот се сече или се допира со некоја друга геометриска фигура.
        /// Враќа и листа од некои точки со кои тој се сече.
        /// </summary>
        /// <param name="geometricShape"></param>
        /// <param name="points"></param>
        /// <returns></returns>
        public bool Intersects(IGeometricShape geometricShape, out List<Vector2D> points)
        {
            points = new List<Vector2D>();

            if (geometricShape.ShapeType == GeometricShapeTypes.Rectangle)
            {
                return this.Intersects((GameRectangle)geometricShape, points);
            }
            else if (geometricShape.ShapeType == GeometricShapeTypes.Circle)
            {
                return this.Intersects((GameCircle)geometricShape, points);
            }

            throw new NotImplementedException();
        }
Пример #17
0
 public GeometricShapeObjectAdapter(IGeometricShape adaptee)
 {
     this.adaptee = adaptee;
 }
Пример #18
0
 public LineShape(ContextManager cm, LineGeometry ln) : base(cm)
 {
     BaseShape = ln;
 }