![]() |
кхм - кхм... тишина в классе ! =)
тангенс угла в треугольнике - отношение противолежащего катета к прилежащему. (стопудово ! :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 ); алилуйа ! аминь, братья, возрадуемся же ! :) кто бы знал что в школе такие странные штуки рассказывают иногда... :) |
можно я, можно я???
дяденька учитель, а можно я дополню???
угл angel упомянутый выше в радианах. т.е. чтобы получить его в градусах. что так необходимо свойству _rotation нуна разделить его на PI и умножЫть на 180. т.е. angle = atan2(Б.y - A.y, Б.x - A.x ) /Math.PI*180; дневник нести? :D :D :D |
Нокс, а тебе не кажется, что ты немного того... В смысле Уилла обчитался?
|
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
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.