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