Aš tavo pateiktą sąlygą atmestinai perskaičiau prieš rašydamas ;] tai ką parašiau ankstesniame pranešime, tinka kai suki apie koordinačių centrą, ale apie (0,0) tašką. Tada turėtum gauti tokias naujo taško koordinčių išraiškas:
x' = x cos(A) - y sin(A)
y' = x sin(A) + y cos(A)
Jei tašką (1,1) pasuki 180 laipsnių kampu apie (0,0), cos(180) = -1, sin(180) = 0, gaunasi:
x' = -x = -1
y' = -y = -1
O jeigu taškas apie kurį suki, nėra (0,0) tai nežinau kaip tada. Galiu pasiūlyti nebent užrašyti taško kurį suki koordinates atžvilgiu taško apie kurį suki, taip tarsi padarytum sukimosi ašį koordinačių centru. Ir po pasukimo pridėti sukimosi ašies koordinates prie x' ir y' išraiškų. Tad viskas atrodytų taip:
x' = X1 + (x-X1)*cos(A) - (y-Y1)*sin(A)
y' = Y1 + (x-X1)*sin(A) + (y-Y1)*cos(A)
(X1, Y1) koordinatės taško apie kurį suki.
Galima patikrinti paprastam atvejui, jei X1 = Y1 = 1, x = 1, y = 2

po visko naujos koordinatės turėtų būti (1, 0).
x' = 1 + (1-1)*cos(180) - (2-1)*sin(180) = 1
y' = 1 + (1-1)*sin(180) + (2-1)*cos(180) = 0
Blantas rašė:Dariau taip:
Apsiskaičiavau atstumą pradinio raudono taško ir objiekto centro. Tuomet pradines raudonojo taško x;y koordinates padalinau iš apskaičiuoto atstumo ir iš gauto atsakymo išsireiškiau pradinius pasisukimo laipsnius. Tuomet prie jų pridėjau, pasisukimo laipsnius objiektui pasisukus, ir atitinkamai panaudojau sin bei cos formules. Rezultatą padauginau iš ilgio, tačiau gautosios koordinatės yra klaidingos.
nesupratau kaip tu mėginai daryti.
Dargi su matricom, jeigu žinai tokias, gali viską daug lengviau užrašyti.
Paskutinį kartą keitė house_martin (2011-03-27 17:48:32)