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

Artch 08.11.2006 23:04

уравнение движения мат. маятника
 
Здраствуйте, мне нужно сделать математический нитяной маятник. Смоделировать кое-как движение получается, но дело в том, что требуется некая интерактивность - маятник можно будет перемещать, и подвешеный груз, соответственно с этим движением должен будеть совершать колебания, т.е по инерции. Сразу скажу что я не прошу дать мне решения, просто решил спросить у профессионалов какими методами пользоваться. Сначала я хотел выразить колебания напрямую через свойство _rotation, но теперь не уверен. Может лучше через cos и sin а потом зная их, вычислять угол наклона?

silin 09.11.2006 00:37

глянь такую модельку для пружинки (mc -мувик):
Код:

var centerX=200,k=0.01,s=0,vx,mouseX;

function fly(){
        vx=s+=(centerX-this._x)*k;
        this._x+=vx;
}
function drag(){
        vx=_xmouse-mouseX;
        mouseX=_xmouse;
        this._x+=vx;
}
mc.onEnterFrame=fly;
mc.onPress=function(){
        mouseX=_xmouse;
        this.onEnterFrame=drag;
}
mc.onRelease=mc.onReleaseOutside=function(){
        s=0;
        this.onEnterFrame=fly;
}

если мувику определить свойство, отвечающее за угол , а в сеттере/геттере вычислять его координаты на окружности, то получится тоже самое для маятника на ниточке

Жень Шень 09.11.2006 11:59

Вложений: 1
Привет!
Смотри фрагмент урока.
Может то, что надо...

alkonaft 09.11.2006 17:26

Tween.yoyo решает.

Artch 10.11.2006 18:39

а как вычислять угол, если, допустим известен косинус и синус угла?

Dendroid 10.11.2006 19:26

Math.atan2(cos,sin);

Kikasso 15.11.2006 06:11

Вложений: 1
Вот тебе архивчик, там маятник с гравитацией. Все качается и наглядно, можно менять гравитацию и пр.
Я запарился и сделал гравитацию и покадрово считал проекции сил, момент инерции и пр.
Ошибка, конечно, есть, но чем больше кадров в сек. тем меньше ошибка.
Скрипт, сразу говорю, чудовищный, ну так напиши свой!
P.S. написано на 5-м
В конце концов это вылилось в http://xstein.spb.ru/power/puskin.html.

Можно сделать математически точно, по формуле:
угол = amp * Math.sin( 2* 3.14 * time/period);
где amp = амплитуда колебания(угол), period - период колебания маятника, time соответственно время. Амплитуду хорошо бы понемножку уменьшать, умножая например на .99 Это колебательное уравнение материальной точки, из школьного курса физики, работающий пример в посте Жень Шеня. В этом случае все будет прекрасно, но мышкой в фазу попасть (чтобы раскачать) очень трудно. У меня не получилось.


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

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