Форум 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)

KomSerg 17.11.2002 18:57

Поворот объекта
 
Здравствуйте !
НУжна помощь !!!
Вот есть 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
появилась тема с АБСОЛЮТНО таким же содержанием...

вам не кажется что это перебор ?

...так что никакое это не унижение - а так, бытовое хамство =)

lexass 18.11.2002 15:58

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:
я тут в одном из топиков предложил за злость тебя утопить в пиве и забить воблой, ты не против? ;)

KomSerg 18.11.2002 17:23

Ну я имел ввиду что не как в основной сцене точка (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

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


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

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