2011-02-06 3 views
0

나는이와 자바 응용 프로그램에서 사용하는 기능을 완화 JQuery와 연구 및 종료되었습니다 : 난 내 애니메이션 구형 운동으로이 연결 어떻게jQuery를 이징 기능

// t: current time, b: begInnIng value, c: change In value, d: duration 
    float easeInOutQuad (float x, float t, float b, float c, float d) { 
     if ((t/=d/2) < 1) return c/2*t*t + b; 
     return -c/2 * ((--t)*(t-2) - 1) + b; 
    } 

누군가 나를 가르 칠 수 있습니까?

편집 : 여기 내 구형 움직임을 설명하는 불필요한 코드를 넣지 않을 것입니다. x라는 이름의 X 위치를 가진 구를 상상해보십시오.이 이징 함수를 사용하여 0에서 1000 사이의 값을 갖습니다. 어떻게 함수를 피드합니까?

+3

자바는 (는) jQuery와 아무런 관련이 없습니다. – BoltClock

+0

jquery는 javascript이고 javascript에는 많은 Java DNA가 있습니다. 그다지 사용하지 않아도 OOP이고 약간의 조정 만 있으면 사용할 수 있습니다. 또한 처리 라이브러리를 사용하고 있습니다. – pedrozath

+0

사실입니다.하지만 OP가 Javascript에서 Java로 번역 된 것으로 보이므로 태그가 적절할 수 있습니다. 그러나, 그는 "움직이는 구 운동으로 연결"하면서 나를 잃어 버렸습니다. – maaartinus

답변

4

이것은 기본적으로 psuedo-java 코드이지만 테스트를 거쳤습니다. 내가 대신 구를 사용하는 작은 원을 그린 :

Sphere sphere = new Sphere(); 

// you might want these to be in the sphere class 
float begin; 
float change; 
float time; 
long start; 
float duration; 
float destX = 200; 

// setup, do this when you want to start the animation 
void init(){ 
    begin = sphere.x; 
    change = destX - begin; 
    time = 0; 
    start = System.currentTimeMillis(); 
    duration = 1000; 
} 

// loop code, may also be where you render the sphere 
void loop(){ 
    if (time <= duration){ 
    sphere.x = easeInOutQuad(time, begin, change, duration); 
    }else{ 
    // animation is over, stop the loop 
    } 
    time = System.currentTimeMillis() - start; 
    sphere.render(); 
} 

float easeInOutQuad (float t, float b, float c, float d) { 
    if ((t/=d/2) < 1) return c/2*t*t + b; 
    return -c/2 * ((--t)*(t-2) - 1) + b; 
} 

class Sphere{ 
    float x = 0; 
    void render(){ 
    ellipse(x, 100, 10, 10); 
    } 
} 

당신은 아마 당신의 설정에 따라 주위에 물건을 이동하려는 것이다, 그러나 이것은 당신이 방정식을 완화의이 스타일을 사용할 수있는 방법입니다.