2010-10-31 5 views
0

Je voudrais savoir comment les coordonnées peuvent être transformées au centre de la forme pour dessiner des fonctions mathématiques. J'ai déjà essayé -> TranslateTransform (x, y) sur Graphics objet, cela fonctionne, mais seulement dans un quart des coordonnées. Comment puis-je dessiner des fonctions mathématiques sur le formulaire? Programmation C++ long, mais WinForms et Drawing sont nouveaux 4 moi.Dessin graphique VC++

Répondre

0

Très peu clair ce que le «quart de coordonnées» pourrait signifier. Pour obtenir un système de coordonnées cartésiennes avec 0,0 au centre du formulaire et des coordonnées négatives mappées dans le coin inférieur gauche du formulaire ou du contrôle, vous devrez utiliser ScaleTransform() pour inverser l'axe Y et TranslateTransform() pour déplacer l'origine au centre. Comme ceci:

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); 
    } 

Ceci trace la ligne de la partie inférieure gauche vers la partie supérieure droite.

+0

merci! c'était plus simple que je ne l'imagine. "quart de coordonnées" signifie quadrant d'un système de coordonnées cartésiennes, désolé pour un mauvais anglais. Et montrera-t-il correctement le graphique qui se déroule dans les quatre quadrants (comme sin (x)); –