![]() |
Räkna ut koordinat på roterad bild
Hej,
jag har en bild som jag ritar ut hög med punkter på för att låta användaren "rita" på denna. Sedan har jag en knapp som roterar denna bild 90grader åt valfritt håll. Det jag har problem med är hur jag räknar ut de nya koordinaterna för mina punkter när jag roterar min bild. Jag har Googlat fram en massa olika lösningar men då ingen fungerar känns det som om det är något jag missar och hoppas att jag kan få hjälp med här. Tack på förhand. |
http://en.wikipedia.org/wiki/Rotation_%28mathematics%29
Du multiplicerar helt enkelt bara de gamla koordinaterna med en matris. Du har rotation i två dimensioner som första exempel där. |
Det (tror) jag att jag försökt med, men kan ha gjort något fel.
Kod:
float rx = (float) (Math.Cos(radians) * (p.X - offset.X) - (Math.Sin(radians) * (p.Y - offset.Y)) + offset.X); |
Ser rätt ut vid en första anblick. Pröva att göra några enkla rotationer typ pi/2 eller pi, skrev ut alla variabler och se efter var det blir fel siffror.
|
Har du räknat ut vinkeln rätt? (radianer = grader * PI / 180)
|
Alla tider är GMT +2. Klockan är nu 21:17. |
Programvara från: vBulletin® Version 3.8.2
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Svensk översättning av: Anders Pettersson