atan2 вроде должен помочь.
Code float fltRad = atan2(fltX1 - fltX2, fltY1 - fltY2); fltRad - угол между двумя точками в радианах.Добавлено (04.02.2012, 03:09) --------------------------------------------- Вот, накалякал код для поворота объекта относительно точки. Если что не так написал - извиняйте. 3 часа ночи как никак.
Code float fltX = 0, fltY = 0; // Координаты объекта float fltHotspotX = 0, fltHotspotY = 0; // Точка, относительно которой будет происходить поворот float fltAngle = 0; // Угол поворота в радианах
float fltRX = fltX - fltHotspotX, fltRY = fltY - fltHotspotY;
float fltSinAngle = sinf(fltAngle); float fltCosAngle = cosf(fltAngle);
float fltDestX = fltRX * fltCosAngle - fltRY * fltSinAngle; float fltDestY = fltRX * fltSinAngle + fltRY * fltCosAngle;
fltX = fltDestX + fltHotspotX; fltY = fltDestY + fltHotspotY;
Нет рабства безнадежнее, чем рабство тех рабов, себя кто полагает свободным от оков.
Сообщение отредактировал Aikidos - Суббота, 04.02.2012, 02:58 |