WN

WN (https://www.wn.se/forum/index.php)
-   Klientsidans teknologier, design och grafik (https://www.wn.se/forum/forumdisplay.php?f=12)
-   -   Räkna ut koordinat på roterad bild (https://www.wn.se/forum/showthread.php?t=1050909)

Reager 2011-11-10 11:05

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.

tartareandesire 2011-11-10 12:16

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.

Reager 2011-11-10 12:36

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);
            float ry = (float) (Math.Sin(radians) * (p.X - offset.X) +  (Math.Cos(radians) * (p.Y - offset.Y)) + offset.Y);

Om du kan se något fel eller har något tips på vad jag kan ha gjort för fel så får du gärna tips mig. Min offset är vad "verkliga" origo är, i centrum av bilden alltså och inte uppe i vänstra hörnet som den annars räknar från.

tartareandesire 2011-11-11 17:11

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.

vco-systems 2011-11-14 20:46

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