Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 1.0/2.0 (http://www.flasher.ru/forum/forumdisplay.php?f=93)
-   -   движение объекта ПО ОКРУЖНОСТИ (http://www.flasher.ru/forum/showthread.php?t=74680)

Yaro 25.01.2006 18:49

движение объекта ПО ОКРУЖНОСТИ
 
Как с помощью кода задать замкнутое движение объекта по окружности с заданным радиусом?
Догадываюсь, что для этого хорошо было бы воспользоваться системой полярных координат. Поддерживается ли это экшн скриптом?

Заранее благодарю!

Skubent 25.01.2006 18:56

Ну то есть про то, что есть функции минуса и косинуса не учат даже в школе уже ?

veterok4 25.01.2006 19:20

Вложений: 1
Цитата:

Сообщение от Skubent
Ну то есть про то, что есть функции минуса и косинуса не учат даже в школе уже ?

Что-то типа этого из учебника?

Nox Noctis 25.01.2006 19:24

не нужно ни синуса ни косинуса.
полярных координат тоже не надо.

нужно объект вложить в мувиклип, сдвинуть объект по оси икс (или игрек) на расстояние, равное радиусу окружности, а потом задать изменения свойства _rotation внешнего клипа.

Код:

var radius = 100;
var speed = 10;

//
this.createEmptyMovieClip("outer", 0);
outer.createEmptyMovieClip("inner", 0);
outer.inner.lineStyle(10, 0, 100);
outer.inner.lineTo(.2, 0);
//
outer.inner._x = radius;
//
outer.onEnterFrame = function()
{
        this._rotation += speed;
};

граждане!

прежде чем уверенно бросить недосказанную фразу вида "ты что, совсем тупой?", подумайте.

buka2 25.01.2006 20:12

clip._x = x0+R*Math.sin(a);
clip._y = y0+R*Math.cos(a);

где x0, y0 - центр окружности
R - радиус
a - угол поворота

Ржевский 26.01.2006 10:01

да ну нет же! может в каком другой языке -да, но в actionscript где всё заточено для анимации, надо делать проще, а именно так как написал выше Nox Noctis.

кстати, если в приведенном им примере добавить движение внутреннего объекта по оси x то получится спираль ;)

Nox Noctis 26.01.2006 11:42

Цитата:

Сообщение от Ржевский
кстати, если в приведенном им примере добавить движение внутреннего объекта по оси x то получится спираль ;)

ага :)

а если поэкспериментировать еще немного — может получиться что-то вроде этого:
http://noregret.org/tutor/scope/scope.html

__i 26.01.2006 13:14

Выступлю третейским судьей:

вариант Nox Noctis красив своей простотой %)), но не всегда подойдет допустим когда сам мувик не должен поворачиваться а только должен двигаться по кругу.

вариант buka2 универсален, хотя и не так красив %)

Nox Noctis 26.01.2006 13:20

Цитата:

Сообщение от __i
вариант Nox Noctis красив своей простотой %)), но не всегда подойдет допустим когда сам мувик не должен поворачиваться а только должен двигаться по кругу.

Код:

var radius = 100;
var speed = 10;
//
this.createEmptyMovieClip("outer", 0);
outer.createEmptyMovieClip("inner", 0);
outer.inner.lineStyle(10, 0, 100);
outer.inner.lineTo(15, 0);
//
outer.inner._x = radius;
//
outer.onEnterFrame = function()
{
        this._rotation += speed;
        this.inner._rotation = -this._rotation;
};

предупрежу следующий вопрос: да, получить координаты клипа inner в любой момент можно без вычислений. берем его координаты и применяем localToGlobal().

вобщем всё зависит от цели мероприятия.
иногда синусы-косинусы могут понадобиться.
но далеко не всегда. :)

Skubent 26.01.2006 13:26

Точно-точно, можно и без синусов-косИнусов.
К примеру,
Код:

for(x=0; x<=2*R; x=x+0.1) {
    y = sqrt(R*R - x*x);
//move clip to (x,y)
}



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

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