Example #1
0
        private void DrawRectangle(GraphicalObject obj, Canvas paintCanvas)
        {
            Polygon rect = createRectangle(obj);

            rect.Stroke = Brushes.Black;
            paintCanvas.Children.Add(rect);
        }
Example #2
0
        private void DrawEllipse(GraphicalObject obj, Canvas paintCanvas)
        {
            Ellipse ellipse = new Ellipse();

            ellipse.Width  = obj.dx;
            ellipse.Height = obj.dy;
            ellipse.Stroke = Brushes.Black;
            paintCanvas.Children.Add(ellipse);
            Canvas.SetTop(ellipse, obj.X);
            Canvas.SetLeft(ellipse, obj.Y);
        }
Example #3
0
        private void DrawLine(GraphicalObject obj, Canvas paintCanvas)
        {
            Line line = new Line();

            line.X1     = obj.X;
            line.Y1     = obj.Y;
            line.X2     = obj.X + obj.dx;
            line.Y2     = obj.Y + obj.dy;
            line.Stroke = Brushes.Black;
            paintCanvas.Children.Add(line);
        }
Example #4
0
 private void LoadData(string fileName)
 {
     using (StreamReader reader = new StreamReader(fileName))
     {
         string line;
         while ((line = reader.ReadLine()) != null)
         {
             GraphicalObject obj = GraphicalObject.ParseObject(line);
             objects.Add(obj);
         }
     }
 }
Example #5
0
        private void EllipseMenuItem_Click(object sender, RoutedEventArgs e)
        {
            GraphicalObject obj = new GraphicalObject();

            obj.type = ObjectType.Ellipse;
            AddObjectDialog dialog = new AddObjectDialog();

            dialog.GraphicalObject = obj;
            if (dialog.ShowDialog() == true)
            {
                objects.Add(dialog.GraphicalObject);
                Refresh(PaintCanvas);
            }
        }
Example #6
0
        public static GraphicalObject ParseObject(string line)
        {
            GraphicalObject obj = new GraphicalObject();

            string[] parts = line.Split(';');
            if (parts.Length != 5)
            {
                throw new FormatException("Invalid line format");
            }
            obj.type = (ObjectType)int.Parse(parts[0]);
            obj.X    = int.Parse(parts[1]);
            obj.Y    = int.Parse(parts[2]);
            obj.dx   = int.Parse(parts[3]);
            obj.dy   = int.Parse(parts[4]);
            return(obj);
        }
Example #7
0
        private void Draw(GraphicalObject obj, Canvas paintCanvas)
        {
            switch (obj.type)
            {
            case ObjectType.Line:
                DrawLine(obj, paintCanvas);
                break;

            case ObjectType.Rectangle:
                DrawRectangle(obj, paintCanvas);
                break;

            case ObjectType.Ellipse:
                DrawEllipse(obj, paintCanvas);
                break;
            }
        }
Example #8
0
        private Polygon createRectangle(GraphicalObject obj)
        {
            Polygon rect = new Polygon();
            Point   p1 = new Point(), p2 = new Point(), p3 = new Point(), p4 = new Point();

            p1.X = obj.X;
            p1.Y = obj.Y;
            p2.X = obj.X + obj.dx;
            p2.Y = obj.Y;
            p3.X = p2.X;
            p3.Y = obj.Y + obj.dy;
            p4.X = obj.X;
            p4.Y = obj.Y + obj.dy;
            rect.Points.Add(p1);
            rect.Points.Add(p2);
            rect.Points.Add(p3);
            rect.Points.Add(p4);
            rect.Points.Add(p1);
            rect.Stroke = Brushes.Black;
            return(rect);
        }