Как нарисовать линии в C#? - PullRequest
0 голосов
/ 31 января 2020

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

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

image

Код:

   private void pictureBox1_MouseClick(object sender, MouseEventArgs e)
        {
            pointArray[iNumberofClicks].X = e.X;
            pointArray[iNumberofClicks].Y = e.Y;
            Pen PenSpikes = new Pen(Color.Green);
            SolidBrush solidBrush = new SolidBrush(Color.Blue);
            iNumberofClicks++;
            if (iNumberofClicks > 1)
            {
                Point[] CurrentpointArray = new Point[iNumberofClicks];
                for (int i = 0; i < iNumberofClicks; i++)
                {
                    CurrentpointArray[i].X = pointArray[i].X;
                    CurrentpointArray[i].Y = pointArray[i].Y;
                }

                Bitmap canvas = new Bitmap(pictureBox1.Width, pictureBox1.Height);
                Graphics offScreenDC = Graphics.FromImage(canvas);
                offScreenDC.DrawLines(PenSpikes, CurrentpointArray);

                pictureBox1.Image = canvas;
                offScreenDC.Dispose();
            }
            Point mousePnt = PointToClient(Cursor.Position);
            label2.Visible = true;
            label2.Text = mousePnt.ToString();
        }

...