Hallo,
Ich bin gerade mit dem GDI (System.Drawing) Koordinatensystem auf Kriegsfuss.
Ich rendere (= x,y Koordinaten berechnen) meine Geometrische Form und zeichne sie danach über das Graphics Objekt in ein Bild.
In GDI/System.Drawing ist das Koordinatensystem allerdings an der y Achse gespiegelt, und daher stimmen oben/unten bez. links/rechts nicht.
Ich dachte mir, na was solls, transformiere ich halt das Koordinatnsystem mit der y Flip Matrix (1, 0, 0, -1, 0, 0) und verschiebe den Koordinaten-Ursprungspunkt in die untere linke Ecke, und meine Linien/bögen wurden korrekt gezeichnet.
Nur leider steht nun der Text auf dem Kopf o.0, was nach kurzem Nachdenken auch ganz verständlich war.
Meine Frage:
Wie gehe ich es am besten an, dass ich meine Figuren richtig zeichnen kann? Ich möchte nur sehr ungern bei meinen Koordinaten Berechnungen überall y * -1 rechnen... Was ist der eleganteste Weg?
		                     
             C#-Quelltext
                        C#-Quelltext                    
           	 										| 1:2:
 3:
 4:
 5:
 6:
 7:
 8:
 9:
 10:
 11:
 12:
 13:
 14:
 15:
 16:
 17:
 18:
 19:
 20:
 21:
 22:
 23:
 24:
 25:
 26:
 
 |         public void RenderForm() {
 if (!IsInitialized)
 return;
 
 if (FormFrame == null)
 return;
 
 using (var G = Graphics.FromImage(FormFrame)){
 
 G.SmoothingMode = SmoothingMode.AntiAlias;
 G.Clear(FORM_BACKGROUND_COLOR);
 G.Transform = Common.FlipY;                 G.TranslateTransform(0, -FormFrame.Size.Height);
 
 
 foreach (var FormElement in FormElements) {
 try {
 FormElement.Geometry.Draw(G);
 } catch (Exception) {
 return;
 }
 }
 }
 }
 |