2010-10-31 142 views
0

我想知道,如何将坐标转换为绘制数学函数的窗体中心。 我已经试过- > TranslateTransform(x,y) on 图形对象,这个工程,但只在坐标的四分之一。我应该如何在窗体上绘制数学函数?编程C++很长,但WinForms和绘图是新的4我。图形绘制VC++

回答

0

非常不清楚“四分之一坐标”可能意味着什么。要得到一个笛卡尔坐标系统,其中心坐标为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); 
    } 

这画出了从左下到右上的界限。

+0

谢谢!这比我想象的更简单。“坐标的四分之一”表示笛卡尔坐标系的象限,抱歉英语不好。它会显示图形发生在所有四个象限吗?(如罪(x)); – 2010-10-31 13:51:20