Hi Leute,
wenn ich auf einem Panel etwas zeichnen möchte, dann liegt der Ursprung des Panel ja immer oben links in der Ecke! Sprich ein Punkt mit den Koordinaten 1,1 würde 1 nach rechts und einen nach unten gehen!
Ich würde es aber gerne haben das der Punkt mit 1,1 nicht nach unten geht sondern nach oben! Kann ich den Ursprung des Panels irgendwie anders setzen?
Hallo chrizstone,
herzlich willkommen hier auf myCSharp.de!
Ich würde es aber gerne haben das der Punkt mit 1,1 nicht nach unten geht sondern nach oben! Kann ich den Ursprung des Panels irgendwie anders setzen?
Wozu?
Passe doch einfach die Berechnung der Koordinaten entsprechend an.
Ansonsten kannst du versuchen, mit Transformationen irgendwie dein Koordinatensystem umzudrehen; wie gesagt sehe ich jedoch den Sinn dahinter nicht.
Naja, das hätte ich ja gemacht! Es geht aber um ein fast fertiges Projekt wo der Kunde jetzt auf einmal möchte das es andersrum ist! Ich berechne an etlichen Stellen verschiedene Punkte und möchte jetzt nicht an jeder dieser Stellen Code ändern, deswegen die Frage mit dem Ursprung!
Ich würde es aber gerne haben das der Punkt mit 1,1 nicht nach unten geht sondern nach oben! Kann ich den Ursprung des Panels irgendwie anders setzen?
Also mal angenommen, du hast ein Panel von 300 x 300 Pixel. Die Koordinate (0;0) soll an der Position (0;299) gezeichnet werden, (0;1) an der Position (0;298). Ich denke, da solltest du selbst draufkommen, was man rechnen muß...
Christian
Weeks of programming can save you hours of planning
Ich möchte nichts rechnen, das ist doch mein problem! Weil ich dann an etlichen Stellen rechnen müsste!
Du wirst jedenfalls keine Property mit "Reverse Coordinates" finden. Ums Rechnen führt da kein Weg herum, die Frage ist nur noch, wie du das machst. Ich würde mir ein eigenes Control von Panel ableiten und entsprechende Um-/Berechnungen im Control machen, anstatt bei jedem Abruf der Felder.
...und vor allem wirst du auch keine MagicallyTransformCoordinate-Methode im Framework finden.
Umrechnen mußt du nur genau einmal, nämlich bei der Anzeige.
Christian
Weeks of programming can save you hours of planning
Hallo MrSparkle,
...und vor allem wirst du auch keine MagicallyTransformCoordinate-Methode im Framework finden.
warum nicht? Es geht doch wohl ums Zeichnen in ein Panel. Also ums Zeichnen per Graphics-Objekt. Und das kann doch Koordinatentransformationen.
Hallo chrizstone,
siehe Graphics.Transform und auch TranslateTransform(Single, Single) und ScaleTransform(Single, Single).
herbivore
Hi herbivore,
stimmt, manchmal sieht man den Wald vor lauter Bäumen nicht... Wobei das Subtrahieren der Panel-Höhe jetzt auch nicht so viel aufwändiger wäre 😃
Christian
Weeks of programming can save you hours of planning