Transformation
-
Hallo zusammen
Bei einem ActiveX versuche ich etwas mit einere Transformation zu zeichnen.
Es funktioniert alles, ausser dass in die falsche Richtung gedreht wird.Bei einem positiven Winkel sollte ja gegen den Uhrzeigersinn gedreht werden und umgekehrt.
Hat sonst schon jemand dieses Problem gehabt oder sieht jemand einen Fehler bei der Berechnung der Transformation?
Gruss,
simuPOINT c=CenterOfRect(m_Rect); o_xForm.eM11 = (float) cos(m_nFrameRotation); o_xForm.eM12 = (float) sin(m_nFrameRotation); o_xForm.eM21 = (float) -sin(m_nFrameRotation); o_xForm.eM22 = (float) cos(m_nFrameRotation); o_xForm.eDx = (float)(c.x - cos(m_nFrameRotation)*c.x + sin(m_nFrameRotation)*c.y); o_xForm.eDy = (float)(c.y - cos(m_nFrameRotation)*c.y - sin(m_nFrameRotation)*c.x); SetWorldTransform(i_hdc, &o_xForm);
-
Dieser Thread wurde von Moderator/in CStoll aus dem Forum MFC (Visual C++) in das Forum Spiele-/Grafikprogrammierung verschoben.
Im Zweifelsfall bitte auch folgende Hinweise beachten:
C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?Dieses Posting wurde automatisch erzeugt.
-
simu87 schrieb:
Bei einem positiven Winkel sollte ja gegen den Uhrzeigersinn gedreht werden und umgekehrt.
wie kommst du darauf?
-
Naja, in einem kartesischen Koordinatensystem ist die positive y-Achse immer nach oben zeigend. Bei Windows-Ansichten zeigt die nach unten. Ist sozusagen eine Spiegelung an der x-Achse. Somit dreht sich dann auch der Drehsinn.
-
axo, dachte du nutzt ogl/d3d.
deine zeile 8 und 9 sind mir ein wenig suspekt. zum einen koennte ich mir vorstellen dass da klammern fehlen. zum anderen wunder ich mich weshalb du von c.x und c.y abziehst.
-
rapso schrieb:
simu87 schrieb:
Bei einem positiven Winkel sollte ja gegen den Uhrzeigersinn gedreht werden und umgekehrt.
wie kommst du darauf?
Mathematik-Grundwissen

einen positiven Winkel misst man gegen den UhrzeigersinnAllerdings stellt sich die Frage, ob diese Regel hier auch seine Gültigkeit hat
-
zwutz schrieb:
rapso schrieb:
simu87 schrieb:
Bei einem positiven Winkel sollte ja gegen den Uhrzeigersinn gedreht werden und umgekehrt.
wie kommst du darauf?
Mathematik-Grundwissen

einen positiven Winkel misst man gegen den UhrzeigersinnAllerdings stellt sich die Frage, ob diese Regel hier auch seine Gültigkeit hat
je nach gebiet ist was anderes gelaeufig, bei (2d)graphik ist mir der uhrzeigersinn gelaeufig, ich glaube ne festlegung gibt es da nicht wirklich, eben deswegen fragte ich ;).
-
Danke vielmals für die Antworten!
@rapso: Die Formel habe ich von folgender Seite und bei mir scheint es zu funktionieren. Das zu drehende objekt soll sich auch nicht um den Ursprung des Koordinatensystems drehen sondern um den eigenen Mittelpunkt. Ich glaube das ist der Grund warum von c.x und c.y abgezogen wird. (bei der Berechnung von dx und dy)
http://olli.informatik.uni-oldenburg.de/Grafiti3/grafiti/flow5/page13.html@AndyDD: Ja klar doch
Genau das ist der grund für den verkehrten DrehsinnGruss,
SiMu
-
simu87 schrieb:
Ich glaube das ist der Grund warum von c.x und c.y abgezogen wird. (bei der Berechnung von dx und dy)
fuer mich schaut es aus als ob er c.x und c.y addiert und nicht abzieht, zudem zieht er beide male cos(..)*.. ab und das find ich ein wenig suspekt.