![]() |
|
||||||||||
|
|||||
|
Регистрация: Sep 2006
Сообщений: 13
|
Здраствуйте, мне нужно сделать математический нитяной маятник. Смоделировать кое-как движение получается, но дело в том, что требуется некая интерактивность - маятник можно будет перемещать, и подвешеный груз, соответственно с этим движением должен будеть совершать колебания, т.е по инерции. Сразу скажу что я не прошу дать мне решения, просто решил спросить у профессионалов какими методами пользоваться. Сначала я хотел выразить колебания напрямую через свойство _rotation, но теперь не уверен. Может лучше через cos и sin а потом зная их, вычислять угол наклона?
|
|
|||||
|
глянь такую модельку для пружинки (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;
}
|
|
|||||
|
[+ 1.3 25.06.06]
[+1 25.06.06] Регистрация: Jan 2006
Сообщений: 144
|
Tween.yoyo решает.
__________________
Что за опен соурс без водки? |
|
|||||
|
Регистрация: Sep 2006
Сообщений: 13
|
а как вычислять угол, если, допустим известен косинус и синус угла?
|
|
|||||
|
Регистрация: Dec 1999
Адрес: Магадан
Сообщений: 763
|
Math.atan2(cos,sin);
__________________
Верить никому нельзя. Мне - можно. :) |
|
|||||
|
Регистрация: Oct 2006
Адрес: spb.ru
Сообщений: 3,221
|
Вот тебе архивчик, там маятник с гравитацией. Все качается и наглядно, можно менять гравитацию и пр.
Я запарился и сделал гравитацию и покадрово считал проекции сил, момент инерции и пр. Ошибка, конечно, есть, но чем больше кадров в сек. тем меньше ошибка. Скрипт, сразу говорю, чудовищный, ну так напиши свой! P.S. написано на 5-м В конце концов это вылилось в http://xstein.spb.ru/power/puskin.html. Можно сделать математически точно, по формуле: угол = amp * Math.sin( 2* 3.14 * time/period); где amp = амплитуда колебания(угол), period - период колебания маятника, time соответственно время. Амплитуду хорошо бы понемножку уменьшать, умножая например на .99 Это колебательное уравнение материальной точки, из школьного курса физики, работающий пример в посте Жень Шеня. В этом случае все будет прекрасно, но мышкой в фазу попасть (чтобы раскачать) очень трудно. У меня не получилось. Последний раз редактировалось Kikasso; 15.11.2006 в 06:35. |
![]() |
![]() |
Часовой пояс GMT +4, время: 07:46. |
|
|
« Предыдущая тема | Следующая тема » |
|
|