Ejemplo n.º 1
0
        public static void reflectionTransform(Shape shape, TypeReflectionTransform type)
        {
            Line Ox = new Line(new Point(0, 200), new Point(400, 200));

            Ox.setTransformPoint(new Point(0, 0));
            translationTransform(Ox);
            Line Oy = new Line(new Point(200, 200), new Point(400, 400));

            Oy.setTransformPoint(new Point(0, 0));
            translationTransform(Oy);

            switch (shape.getTypeDraw())
            {
            case TypeDraw.Line:
                Line line = (Line)shape;
                line.setStartPoint(reflect(line.getStartPoint(), type));
                line.setEndPoint(reflect(line.getEndPoint(), type));
                break;

            case TypeDraw.Circle:
                Circle circle = (Circle)shape;
                circle.setCenterPoint(reflect(circle.getCenterPoint(), type));
                circle.setEndPoint(reflect(circle.getEndPoint(), type));
                break;

            case TypeDraw.Ellipse:
                Ellipse ellipse = (Ellipse)shape;
                ellipse.setStartPoint(reflect(ellipse.getStartPoint(), type));
                ellipse.setEndHightPoint(reflect(ellipse.getEndHightPoint(), type));
                ellipse.setEndWidthPoint(reflect(ellipse.getEndWidthPoint(), type));
                break;

            case TypeDraw.Parallelogram:
                Parallelogram parallelogram = (Parallelogram)shape;
                parallelogram.setPoint1(reflect(parallelogram.getPoint1(), type));
                parallelogram.setPoint2(reflect(parallelogram.getPoint2(), type));
                parallelogram.setPoint3(reflect(parallelogram.getPoint3(), type));
                break;

            case TypeDraw.Rectangle:
                Rectangle rectangle = (Rectangle)shape;
                rectangle.setStartPoint(reflect(rectangle.getStartPoint(), type));
                rectangle.setEndPoint(reflect(rectangle.getEndPoint(), type));
                break;

            case TypeDraw.Triangle:
                Triangle triangle = (Triangle)shape;
                triangle.setPoint1(reflect(triangle.getPoint1(), type));
                triangle.setPoint2(reflect(triangle.getPoint2(), type));
                triangle.setPoint3(reflect(triangle.getPoint3(), type));
                break;

            case TypeDraw.Square:
                Square square = (Square)shape;
                square.setPoint1(reflect(square.getPoint1(), type));
                square.setPoint2(reflect(square.getPoint2(), type));
                break;
            }
            shape.setTransformFlag(false);
        }
Ejemplo n.º 2
0
 public void transformReflection(TypeReflectionTransform type)
 {
     if (choosedShape != null)
     {
         Transform.reflectionTransform(choosedShape, type);
         getInfoShape();
     }
 }
Ejemplo n.º 3
0
        private static Point reflect(Point startPoint, TypeReflectionTransform type)
        {
            int y = startPoint.Y;
            int x = startPoint.X;

            switch (type)
            {
            case TypeReflectionTransform.Horizontal:
                if (y < 200)
                {
                    startPoint.Y = y + ((200 - y) * 2);
                }
                else if (y > 200)
                {
                    startPoint.Y = y - ((y - 200) * 2);
                }
                break;

            case TypeReflectionTransform.Vertical:
                if (x < 200)
                {
                    startPoint.X = x + ((200 - x) * 2);
                }
                else if (x > 200)
                {
                    startPoint.X = x - ((x - 200) * 2);
                }
                break;

            case TypeReflectionTransform.Origin:
                if (y < 200)
                {
                    startPoint.Y = y + ((200 - y) * 2);
                }
                else if (y > 200)
                {
                    startPoint.Y = y - ((y - 200) * 2);
                }
                if (x < 200)
                {
                    startPoint.X = x + ((200 - x) * 2);
                }
                else if (x > 200)
                {
                    startPoint.X = x - ((x - 200) * 2);
                }
                break;
            }
            return(startPoint);
        }
Ejemplo n.º 4
0
 private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
 {
     if (comboBox1.Text.Contains("(Oy)"))
     {
         type = TypeReflectionTransform.Vertical;
     }
     else if (comboBox1.Text.Contains("(Ox)"))
     {
         type = TypeReflectionTransform.Horizontal;
     }
     else
     {
         type = TypeReflectionTransform.Origin;
     }
 }