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

Psycho Tiger 15.02.2006 18:20

Синусоид и косинусоид
 
Здрасти
Вобщем говоря имеем класс:
class sin extends MovieClip{
var amplitude:Number=100; //амплитуда
var t:Number=0.1; //время
var x=300; //переменная x, хранящая координаты
function onEnterFrame(){
_x = x + amplitude * Math.cos(_x * t); //синусоида
}
}

и так - вот в чем трабл - синусоида - можт я в физике и не силен, но у меня такая вот формула:
X=A*sin(или cos) wt (w-цикл. Частота)
(писал на шпору :))
и так - синус косинус - возможные варианты:
_x = x + amplitude * Math.sin(_x * t);
работает так - попрыгает всатнет на место и замрет :(


_x = x + amplitude * Math.cos(_y * t);
то же самое


_x = x + amplitude * Math.sin(_y * t);
Вааще не работает - но давайте сделаем вот так:
_x = x + amplitude * Math.sin(_y * t);
_y++;
Ура! да сдраствует гармония!!! Мы неугомонно ползем вниз :(
Вот собственно и сам вопрос - почему када мы _y++, то всё ок,
а када мы с _y ничо не делаем то ничо и не происходит??? Параметр _y как таковой задан (свойство т.е.) - ну должен же он хоть секунду покалебитца???
Заранее спасибо

Psycho Tiger 16.02.2006 12:56

Разве вымерли все физики???
Люди, пожалуста подскажите в чем тут ошибка... я не дорубаю :((

meiciuc 16.02.2006 13:08

к сожалению на конкретный вопрос ответить не смогу - тоже не силен в физике. Хочу лишь напомнить, что существуют как минимум два основных метода решений уравнений: алгебраический - то, что ты сейчас пользуешь, и геометрический - вектора. Раньше я тоже много игрался с углами, пока не начал использовать вектора - поверь, это намного легче, а главное - естественно для понимания. Попробуй почитать из рускоязычных Гурского. Углы незаменимы лишь при расчетах результатов, например множественных столкновений в бильярде. Все остальное - векторы. Попробуй и удивишься простоте. Или ищи математиков.

Psycho Tiger 19.02.2006 11:44

Спасиб, почитаю...
Тока вот с векторами... ненавижу их - чесно...
Чтож, возможно в програмее все с ними просто, но из школьного курса...
Брррр

Король 19.02.2006 12:01

Код:

t=0
y = 200
amp =0.2
mc.onEnterFrame = function(){
        t+= amp
        mc._y = y + Math.sin(t)*100;
}

простейший пример


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

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