Неправильное расположение точки относительно ординаты

Пытаюсь нарисовать систему координат, и отметить на ней точку. Систему вроде как нарисовал, но точка на ней отмечается неправильно. Не могу понять в чем проблема.

Я пытаюсь нарисовать точку с координатами (0, 50) .

g.DrawLine(Pens.Red, 0, 50, 0, 51);

Но она рисуется с координатами (0, -50). Почему так происходит?точка

Вот так я рисую систему координат:

private void drawAxis(Graphics g)
        {
            Matrix m = new Matrix();
            g.Transform = m;
            m.Translate(mainPanel.Width / 2, mainPanel.Height / 2);
            g.Transform = m;
            g.DrawLine(Pens.Black, -mainPanel.Width / 2, 0, mainPanel.Width / 2, 0);
            g.DrawLine(Pens.Black, 0, -mainPanel.Height / 2, 0, mainPanel.Height / 2);
            g.DrawString("X", this.Font, Brushes.Black, mainPanel.Width / 2 - 20, -20);
            g.DrawString("Y", this.Font, Brushes.Black, 5, -mainPanel.Height / 2 + 5);
            int tick = 50;
            StringFormat sf = new StringFormat();
            sf.Alignment = StringAlignment.Far;
            for (int i = -250; i <= 250; i += tick)
            {
                g.DrawLine(Pens.Black, i, -3, i, 3);
                g.DrawLine(Pens.Black, -3, i, 3, i);
                SizeF sizeXTick = g.MeasureString(i.ToString(), this.Font);
                if (i != 0)
                {
                    g.DrawString(i.ToString(), this.Font, Brushes.Black, i + sizeXTick.Width / 2, 4f, sf);
                    g.DrawString((-i).ToString(), this.Font, Brushes.Black, -3f, i - sizeXTick.Height / 2, sf);
                }
                else
                    g.DrawString("0", this.Font, Brushes.Black, new PointF(i - sizeXTick.Width / 3, 4f), sf);
            }
        }

Ответы (1 шт):

Автор решения: MBo

Используется система координат MM_TEXT, левая (углы по часовой стрелке), у которой ось OY направлена вниз. Поэтому неудивительно, что точка с положительным Y будет ниже начала координат.

При выводе меток же вы знак меняете почему-то (-i).ToString()

→ Ссылка