2008.08.28 19:57
예제를 봐봅시다.

<예제 소스>

//변수들
var V0:Number = 0;
var theta:Number = 0;
var t:Number = 0;
var G:Number = 10;
var F:Number = 25;
var Fw:Number = 0;
var wtheta:Number = 0;
var m:Number = 1;
var Vx:Number;
var Vy:Number;
var i=0;

//리셋 펑션
function reset(){
    _root.ball._x = 400;
    _root.ball._y = 300;
    Vx = 0;
    Vy = 0;
    t=0; //퀴즈 왜 리셋시에 t를 0으로 만들까요?
}
reset();


onEnterFrame = function(){ // 매 프레임마다
    if(_root.ball._x > 800 || _root.ball._x<0 || _root.ball._y>1000 || _root.ball._y<-400){ reset();}
//해당 범위를 넘어가면 리셋 함수 호출

    theta = int(_root.DT.text)*Math.PI/180
//오늘의 핵심.

    V0 = F/m; // 초기 속도 구하기.

    Vx = V0*Math.cos(theta) + t*Fw*Math.cos(wtheta)/m
    Vy = V0*Math.sin(theta) - G*t - t*Fw*Math.sin(wtheta)/m

    _root.ball._x+= Vx;
    _root.ball._y-= Vy;
    t+=0.1; // t 값 증가시키기

//트레이서(추적)
    _root.attachMovie("ball", "ball"+i, i)
    var mc = _root["ball"+i]
    mc._x = _root.ball._x;
    mc._y = _root.ball._y;
    mc._alpha = 10
    mc._xscale = 50;
    mc._yscale = 50;
    i++;
}



오늘의 핵심을 봅시다,

theta = int(_root.DT.text)*Math.PI/180


바로 세타에 관한 식입니다.

매스 클래스의 코사인, 사인 함수를 보면 괄호안에 들어가는 값들은 우리가 말하는 각(육십분법이죠. 90도(직각), 45도  이렇게 말이죠.)
이 아니라 호도법으로 들어가야합니다. 바로 '라디안(rad)' 인데요...이건 수학 10-나에 나오는 내용이죠. 어쨋든,

괄호 안에는 호도법이 들어가야 제대로된 코사인, 사인 값을 얻을수 있습니다.

그러면 호도법은 어떻게 구할까요?

 1π 라디안이 180도이므로,

60분법*π/180 해주면 됩니다.

퀴즈 답)
t=0이 없는 채로 컴파일 시켜보세요. 그럼 공에 중력 가속도가 게속 붙어있는 상태가 되어서 실제 움직임처럼 표현되지 않습니다.
그래서 리셋시에 t 를 0으로 만들어줘서 초반 움직임에 중력가속도가 서서히 붙게 한것입니다.
신고

'[+++ FLASH +++] > - - 물리' 카테고리의 다른 글

[수정필요]포물선 운동_05  (1) 2008.08.28
[수정필요]포물선 운동_04  (0) 2008.08.28
포물선 운동_03  (0) 2008.08.28
포물선 운동_02  (0) 2008.08.28
Trackback 0 Comment 0


티스토리 툴바