![]() |
Поворот объекта
Здравствуйте !
НУжна помощь !!! Вот есть Movie Clip. Ну ясно что точка (0;0) находится посередине ! Мне нужно чтобы когда двигаешь мышкой - определялся угол оворота и какой то другой объет поворачивался на такой же угол ! ну вот что то вроде того ! http://www.flashcan.com/cards/build13.html видите как там объекты повораричаются при нажатии на кружок - он начинает поворачиваться ! вот мне нужно точно такую же штуку сделать ! Пмогите написать код для поворота объекта я в принципе сделал такое но мне надо чтоб он не сразу поворчивался на угол который определяется мышкой а угол относительно того на котором он сейчас находится короче чтоб плавно было |
Открывай справочник по Флешу (F1) и ищи:
MovieClip._rotate MovieClip._xmouse MovieClip._ymouse Math.atan2(x,y) + курс тригонометрии 9-ого класса. Удачи. |
2[subway]design
ты предлагаешь слишком продвинутые методы =) для начала надо научиться пользоваться поиском по форуму... но даже это слишком сложно - можно просто для начала разуть глазки и посмотреть СОСЕДНЮЮ тему на этой же странице =) |
А унижать-то зачем товарища?
|
2subway
Это унижение? Это Нокс его отечески по попке похлопал. При всем при том. что топик "Поворот объекта" (с различиями лишь в строчных/прописных буквах) появляется сразу, как только исчезает предыдущий (а иногда и не дожидаясь). |
я кого-то здесь унизил ? :)
если кто-то воспринял это как унижение собственного достоинства - тоо мне жаль вашу хрупкую душевную организацию... 17-11-2002 17:57 появилась эта тема... 16-11-2002 10:50 появилась тема с АБСОЛЮТНО таким же содержанием... вам не кажется что это перебор ? ...так что никакое это не унижение - а так, бытовое хамство =) |
2Nox Noctis
так их так, плодят топики а в их названии только одну букву меняют... вааще разрешил бы постить только после проверки познания манула процентов хотяб на 30 по АС :mad: |
вот вы не о деле говорите ребзя!
нет ну вот ведь вредный народ пошел!
Нет шоб ответить парню коротко и понятно... :D :D :D мне вот другое непонятно - Цитата:
Растолкуйте мне? а для Комарова Сергея: у тебя есть координаты твоего клипа и координаты мыши, ты можешь найти разность X и Y. тебе нужно фактически найти угол образуемый гипотенузой прямоугльного треугольника и обним из катетов (Х). вспомни прямоугольный треугольник. Тангенс угла это отношение противолежащего этому углу катета к прилежащему. В данном случае tan(ugol) = Y/X , отсюда ugol = ATAN(Y/X) тебе осталось открыть мануал и найти нужные функции. Успехов! 2 Lexass: я тут в одном из топиков предложил за злость тебя утопить в пиве и забить воблой, ты не против? ;) |
Ну я имел ввиду что не как в основной сцене точка (0;0) находится в левом верхнем углу а эта точка посередине.
ну эта середина конечно абстрактная смотря для чего середина, но япротсо обычно выражаюсь так ! |
2 Комаров Сергей:
ты не то комментируешь! Лучше бы ты ответил, понял ли ты объяснение или картинку слать? ;) ;) ;) |
кхм - кхм... тишина в классе ! =)
тангенс угла в треугольнике - отношение противолежащего катета к прилежащему. (стопудово ! :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:37. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.