C # Сохранить местоположение нарисованного эллипса в списке <Point>? - PullRequest
0 голосов
/ 04 декабря 2018

небольшой вопрос, на который я не нашел правильного ответа.Я хочу сохранить нарисованное местоположение эллипса, чтобы позже я мог нарисовать линию между двумя эллипсами, поэтому я хочу сохранить это как точку, если это возможно.

 protected override void OnPaint(PaintEventArgs e)
    {
        base.OnPaint(e);
        screen.Clear(Color.Black);

        using (var p = new Pen(Color.White, 2))
        {
            for (int x = 0; x < p1List.Count; x++)
            {
                screen.DrawLine(p, p1List[x], p2List[x]);
            }
        }

        List<Point> punten = new List<Point>();


        foreach (var pair in this.droppedShapes)
        {
            var shapeType = pair.Item2; // Reveal your own shape object here
            var location = pair.Item1;


            switch (shapeType) // Reveal your own shape object here
            {
                case 0:
                    screen.DrawRectangle(whitePen, location.X - 10, location.Y - 10, 40, 40);
                    screen.DrawString("&", new Font(FontFamily.GenericMonospace, (float)28), whiteBrush, location.X - 11, location.Y - 13);
                    //input       
                    screen.DrawLine(whitePen, location.X - 25, location.Y, location.X - 10, location.Y );
                    screen.FillEllipse(greenBrush, location.X - 30, location.Y - 5, 10, 10);
                    punten.Add(); //add the location of the "ellipse"
                    //input       
                    screen.DrawLine(whitePen, location.X - 25, location.Y + 20, location.X - 10, location.Y + 20);
                    screen.FillEllipse(greenBrush, location.X - 30, location.Y + 15, 10, 10);

                    //output      
                    screen.DrawLine(whitePen, location.X + 30, location.Y + 10, location.X + 45, location.Y + 10);
                    screen.FillEllipse(greenBrush, location.X + 40, location.Y + 5, 10, 10);

Я уже добавил линию"punten.Add ()", потому что это строка, где я хочу сохранить местоположение.Если есть лучший способ, ударь меня!

1 Ответ

0 голосов
/ 04 декабря 2018

Мне кажется, все в порядке, просто замените ваш

punten.Add();

на

punten.Add(new Point(location.X, location.Y));

или что-то подобное для рисования линий между локациями.Имейте в виду, что это добавит Очки в ваш список только в том случае, если в регистре «0» введен регистр 0, в противном случае в вашем Списке не может быть баллов (или вы добавите Очки в список в других разделах наблюдений).

...