Как нарисовать это красные круги в черных кругах? C# - PullRequest
0 голосов
/ 03 мая 2020

Я рисую точки на panel1 для игры Dots & Boxes. Я хочу нарисовать черные круги и красный вокруг них, но по какой-то причине половина моих красных кругов нарисована хорошо, а другая половина сдвинута вправо. Я пробовал разные смещения, но если правая сторона панели прорисована хорошо, то левая нет. 10x9 доска ; доска 2х2

private void panel1_Paint(object sender, PaintEventArgs e)
    {
        graphics = e.Graphics;

        for (int i = 0; i <= numberOfColumns; i++)
        {
            for (int j = 0; j <= numberOfRows; j++)
            {
                graphics.DrawEllipse(new Pen(Color.Black, 1.75f), i * ((panel1.Width-10)/ numberOfColumns), j * ((panel1.Height-10) / numberOfRows), dotWidth, dotHeight);
                listOfRectanglesF.Add(new RectangleF((i * panel1.Width-10) / numberOfColumns, j * ((panel1.Height - 10) / numberOfRows),dotWidth,dotHeight));

                graphics.FillEllipse(new SolidBrush(Color.Black), i * ((panel1.Width - 10) / numberOfColumns), j * ((panel1.Height - 10) / numberOfRows), dotWidth, dotHeight);
            }
        }
        foreach(RectangleF x in listOfRectanglesF)
        {
            graphics.DrawEllipse(new Pen(Color.Red, 1f), x.X, x.Y, x.Width, x.Height);

        }

1 Ответ

2 голосов
/ 03 мая 2020

Вы можете нарисовать их одновременно в своем первом для l oop и забыть о втором для l oop (удалить его):

Тот же самый расчет используется, чтобы найти начало рисования затем, точки x и y уменьшаются на 1, ширина и высота увеличиваются на 2.

Надеюсь, это поможет.

graphics.FillEllipse(new SolidBrush(Color.Black), i * ((panel1.Width - 10) / numberOfColumns), j * ((panel1.Height - 10) / numberOfRows), dotWidth, dotHeight);
graphics.DrawEllipse(new Pen(Color.Red, 1f), i * ((panel1.Width-10) / numberOfColumns)-1, j * ((panel1.Height - 10) / numberOfRows)-1, dotWidth+2, dotHeight+2);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...