....
float v=D3DXVec2Length(&_waveInfo._velocity);
float dragF=dampingForce;
float ut=dragF*_waveInfo._curTime;
float dd=distance*distance;
float tt=time*time;
float denominator = (ut+2.0f);
.......
//#define _DD 1
#if _DD
//d^2
maxVelocity=(_waveInfo._distance/(2.0f*_waveInfo._curTime))*sqrt(denominator) ;
if( v >= maxVelocity)
v=maxVelocity-0.01;
#else
//2d^2
maxVelocity=sqrt( (2.0f*dd*ut+2)/tt )/2.0f;
if( v >= maxVelocity)
v=maxVelocity-0.01;
#endif
vv=v*v;
float c1=0.0f;
float c2=0.0f;
float c3=0.0f;
#if _DD
//d^2
c1= (4.0f - 8.0f*vv*tt/dd)/denominator;
c3= (2.0f*vv*tt/dd)/denominator;
#else
//2d^2
c1= (4.0f - 8.0f*vv*tt/(2.0f*dd))/denominator;
c3= (2.0f*vv*tt/(2.0f*dd))/denominator;
#endif
c2= (ut-2.0f)/denominator;
.....
#if _DD
//d^2
maxTime= (dragF +sqrt( dragdragF + 32.0f*vv/dd ) )/(8.0f*vv/dd);
#else
//2d^2
maxTime= (vv*sqrt(dd*(16.0f*vv+dd*dragdragF)/(vv*vv)) + dd*dragF)/(4.0f*vv);
#endif
if( maxTime> _waveInfo._curTime+tick )
_waveInfo._curTime+=tick;
'수학 (Mathematics) > 3D수학' 카테고리의 다른 글
Simple cloud layer SceneNode (0) | 2013.03.05 |
---|---|
근사 편미분 파동방정식, 경계 범위 식구하기(2) (0) | 2013.02.24 |
근사 편미분 파동방정식, 경계 범위 식구하기 (0) | 2013.02.22 |
행렬에 정규직교 단위벡터3개를 세팅하는 방법과 활용 (0) | 2013.01.11 |
기초 : 행기준 행렬과 열기준 행렬 (0) | 2013.01.09 |