Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Поворот в сторону движения (http://www.flasher.ru/forum/showthread.php?t=177892)

Halfist 10.04.2012 23:33

Поворот в сторону движения
 
Вложений: 1
Доброго времени суток.

Стоит следующая задача: есть объект 2, который нужно повернуть в сторону движения к красному кругу (примерно так, как повёрнут объект 1). Как высчитать угол поворота?

Заранее спасибо за ответ.

ramshteks 10.04.2012 23:35

Math.atan2()

Halfist 10.04.2012 23:39

Т.е., насколько я понял, будет что-то вроде:
Код AS3:

rectangle.rotation += Math.atan2(redCircle.x, redCircle.y);

Так?

ramshteks 10.04.2012 23:43

нет, примерно так:
Код AS3:

rect.rotation = Math.atan2(redCircle.x-rect.x, redCircle.y-rect.y);

Хотя не помню, в чем задается угол для rotation, в радианах или градусах. Math.atan2 возвращает точно в радианах. Вполне вероятно необходим перевод из радиан в градусы

TanaTiX 11.04.2012 00:25

rotation в градусах

samana 11.04.2012 00:32

И первым параметром в Math.atan2 идёт "y", а затем "x".

Halfist 11.04.2012 00:43

Крутит неверно.

Код AS3:

stage.addEventListener(MouseEvent.CLICK, onStageClick);
 
function onStageClick(event:MouseEvent):void
{
        rect.rotation = Math.atan2(event.stageY - rect.y, event.stageX - rect.x) * 180 / Math.PI;
}

Добавлено через 9 минут
Заработало, когда к углу в градусах прибавил 90.


Часовой пояс GMT +4, время: 02:20.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.