График рисования VC ++ - PullRequest
0 голосов
/ 31 октября 2010

Я хотел бы знать, как координаты могут быть преобразованы в центр формы для рисования математических функций.Я уже пробовал -> TranslateTransform (x, y) на Graphics объекте, это работает, но только в одной четверти координат.Как рисовать математические функции на форме? Программирование на C ++ длинное, но WinForms и Drawing являются новыми 4 me.

1 Ответ

0 голосов
/ 31 октября 2010

Очень неясно, что может означать «четверть координат». Чтобы получить декартову систему координат с 0,0 в центре формы и отрицательными координатами, сопоставленными с нижним левым углом формы или элемента управления, вам придется использовать ScaleTransform () для инвертирования оси Y и TranslateTransform () для сместить начало координат в центр. Как это:

protected:
    virtual void OnPaint(PaintEventArgs^ e) override {
        e->Graphics->ScaleTransform(1, -1);
        e->Graphics->TranslateTransform(this->ClientSize.Width / 2, -this->ClientSize.Height / 2);
        e->Graphics->DrawLine(Pens::Black, -20, -20, 20, 20);
        __super::OnPaint(e);
    }

Рисует линию от левого нижнего угла к правому верхнему углу.

...