x/y versatz von einem rechteck bei rotation |
25.04.2007, 12:38 | master lisa | Auf diesen Beitrag antworten » |
x/y versatz von einem rechteck bei rotation Ich habe ein rechteck, dieses rechteckt hat folgende attribute: width height xpos ypos und rotation nun habe ich z.b. eine rotation von 45°! wie kann ich nun berechnen um wieviel sich die eckpunkte verschoben haben wenn das rechteck um den punkt linksoben bzw. den mittelpunk gedreht wurde? bsp: vor der rotation: width: 20px height: 20px xpos: 10px ypos: 10px rotation: 0° nach der rotation: width: 20px height: 20px xpos: 13.616px ypos: 0.878px rotation: 30° wie kommt dieser x/y-pos versatz zu stande? wie lautet die formel ? Ich hoffe ich habe mich verständlich ausgedrückt, ich möchte eigentlich nur einen mathematischen ansatz, eine formel wäre natürlich auch sehr geil ... grüsse aus der bonner altstadt flo |
||
25.04.2007, 13:08 | Dreher | Auf diesen Beitrag antworten » |
Drehmatrix Hallo, siehe Dir das mal an: http://de.wikipedia.org/wiki/Drehmatrix |
||
25.04.2007, 13:29 | master lisa | Auf diesen Beitrag antworten » |
mmh , sorry ich bin ziemlicher laie, ist alles etwas lange her ich brauche wohl die Aktive Drehmatrix (Punkt wird gedreht), aber wie lauten denn die formeln dafür? folgende werte habe ich auch noch : 0.8660254037844385 -0.4999999999999998 0.4999999999999998 0.8660254037844385 anhand 3 dieser werte errechne ich die rotation, wie kann ich denn den versatz errechnen? function winkelCalc($wert1,$wert2,$wert3){ if(acos($wert2)*(180/pi())>acos($wert3)*(180/pi())){ $winkel=acos($wert1)*(180/pi()); } else if (acos($wert2)*(180/pi())==acos($wert3)*(180/pi())){ $winkel=0; } else { $winkel=(-1)*(acos($wert1)*(180/pi())); } return round($winkel,3); } damit errechne ich den winkel! |
||
25.04.2007, 15:54 | Dreher | Auf diesen Beitrag antworten » |
Hallo, nochmal zur Ausgangsfrage. Drehung des Rechtecks mit den Eckpunkten A, B, C und D um den Punkt linksoben (A): Das Koordinatensystem wird so gewählt, dass der Punkt A im Ursprung liegt. Dann gilt allgemein: In Deinem Beispiel ist dann b = 20px (width) und d = 20px (height) und xpos=0 sowie ypos=0. Dann werden die Vektoren gedreht, z. B.: Zu wird dann noch der Versatz addiert, hier also jeweils 30px (10px für die Verschiebung in den Ursprung und 20px für width und height). Drehung um den Mittelpunkt: Die Vorgehensweise ist genauso, nur sind die Vektoren jetzt: |
||
25.04.2007, 16:57 | master lisa | Auf diesen Beitrag antworten » |
super danke danke ! es wird nun nur um den punkt A gedreht, der mittelpunkt interessiert mein programm nicht mehr ich werde heute abend bzw. morgen früh die formeln durchgehen und versuchen einzusetzen .. hab sicher morgen noch fragen |
|
Verwandte Themen
Die Beliebtesten » |
|
Die Größten » |
Die Neuesten » |
|