Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript (http://www.flasher.ru/forum/forumdisplay.php?f=5)
-   -   Поворот объекта (http://www.flasher.ru/forum/showthread.php?t=39732)

Nox Noctis 18.11.2002 19:23

кхм - кхм... тишина в классе ! =)

тангенс угла в треугольнике - отношение противолежащего катета к прилежащему.
(стопудово ! :D )

— у тебя есть тчк. А и тчк. Б
— нужно повернуть то, что находится в тчк. А в направлении тчк. Б

теперь рисуем треугольничего по точкам: (A.x; A.y) (Б.x; Б.y) (A.у; Б.х)
(прямоугольный, хвала пифагору и его штанам !.. )

от пункта А до пункта Б по оси Хэ : Б.x - A.x
(прилежащий к тчк. А катет)

от пункта А до пункта Б по оси У : Б.y - A.y
(противолежащий относительно вершины А катет)

теперь путем деления одного на другое получаем тангенс:
tan = (Б.y - A.y)/(Б.x - A.x );

теперь путем еще более хитрой операции делаем из тангенса угол:
angle = atan(tan);

а теперь вспоминаем один древний сакральный символ -
такой кружочек с осями. ось тангенсов - справа параллельно оси ординат. следовательно все углы получаемые арктангенсом находятся в правой полуплоскости этой тригонометрической хрени :) то есть это углы от -90 до +90.

значит если нужно поворачивать объект налево (точка Б левее точки А) - угол необходимо увеличить на 180 градусов.

это можно сделать ручками:
angle = atan(tan) + (Б.х-А.х<0)*180;

а можно функцией atan2, которая собсно для этого и нужна...
angle = atan2(Б.y - A.y, Б.x - A.x );

алилуйа ! аминь, братья, возрадуемся же ! :)

кто бы знал что в школе такие странные штуки рассказывают иногда... :)

Max N Chubin_ 18.11.2002 19:32

можно я, можно я???
 
дяденька учитель, а можно я дополню???
угл angel упомянутый выше в радианах.
т.е. чтобы получить его в градусах. что так необходимо свойству _rotation нуна разделить его на PI и умножЫть на 180.
т.е.

angle = atan2(Б.y - A.y, Б.x - A.x ) /Math.PI*180;

дневник нести?
:D :D :D

DeliMIter 18.11.2002 19:33

Нокс, а тебе не кажется, что ты немного того... В смысле Уилла обчитался?

Nox Noctis 18.11.2002 19:38

2Max N Chubin_
тааак... Шубин освобождается от контрольной по теме - остальные закрыли учебники и достали двойные листки... сейчас раздам варианты =)

2DeliMIter
да, ты прав, только я не Уилла обчитался, а просто нежно люблю школьную программу по математике :D

я больше не буду, правда...
и потом - я что-то не так объяснил ? :)
(ну, стиль отвратительный, да :) )


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

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