示例#1
0
        private void CreateShape(ShapeModel.ShapeType shapeType)
        {
            var minPosPoint     = new Point(0, 0);
            var maxPosPoint     = new Point(ShapePanel.ActualWidth, ShapePanel.ActualHeight);
            var initialPosition = new Point((maxPosPoint.X - minPosPoint.X) / 2, (maxPosPoint.Y - minPosPoint.Y) / 2);

            ShapeModel shape;

            switch (shapeType)
            {
            case ShapeModel.ShapeType.Ball:
                shape = new BallShapeModel();
                break;

            case ShapeModel.ShapeType.Square:
                shape = new SquareShapeModel();
                break;

            default:
                throw new InvalidOperationException("Unexpected Shape Type");
            }

            shape.Rate        = 8;
            shape.MinPosPoint = minPosPoint;
            shape.MaxPosPoint = maxPosPoint;
            shape.Position    = initialPosition;

            _shapes.Add(shape);

            UpdateStateFromInputSettings();
        }
示例#2
0
        public static IShape GetInstance(ShapeModel.ShapeType shape)
        {
            switch (shape)
            {
            case ShapeModel.ShapeType.CIRCLE:
                return(new Circle());

            case ShapeModel.ShapeType.EQUILATERAL_TRIANGLE:
                return(new EquilateralTriangle());

            case ShapeModel.ShapeType.HEXAGON:
                return(new Polygon(6));   // Hexagon();

            case ShapeModel.ShapeType.ISOSCELES_TRIANGLE:
                return(new IsoscelesTriangle());

            case ShapeModel.ShapeType.OCTAGON:
                return(new Polygon(8));   // Octagon();

            case ShapeModel.ShapeType.OVAL:
                return(new Oval());

            case ShapeModel.ShapeType.PARALLELOGRAM:
                return(new Parallelogram());

            case ShapeModel.ShapeType.PENTAGON:
                return(new Polygon(5));   // Pentagon();

            case ShapeModel.ShapeType.RECTANGLE:
                return(new Rectangle());

            case ShapeModel.ShapeType.SCALENE_TRIANGLE:
                return(new ScaleneTriangle());

            case ShapeModel.ShapeType.SQUARE:
                return(new Square());

            case ShapeModel.ShapeType.HEPTAGON:
                return(new Polygon(7));

            default:
                return(null);
            }
        }
 public EquilateralTriangle()
 {
     shapeType = ShapeModel.ShapeType.EQUILATERAL_TRIANGLE;
 }
示例#4
0
 public Oval()
 {
     shapeType = ShapeModel.ShapeType.OVAL;
 }
示例#5
0
 public IsoscelesTriangle()
 {
     shapeType = ShapeModel.ShapeType.ISOSCELES_TRIANGLE;
 }