2009年11月10日火曜日

任意の位置を中心に回転

まあ 単純なミスで苦労したけどできたかな


//=========================================================================================================
// ActRotationNextFrame
// : フレームを一つ進める
// IN : NONE
// OUT : NONE
//RETURN : TRUE : 処理済み
//=========================================================================================================
BOOL CKeyFrameAnimate::ActRotationNextFrame()
{
if( m_type&ROTATION && m_dwRotFrameSize != 0)
{
//--------------------------------
//回転フレームカウントをインクリメント
//--------------------------------
m_dwRotFrameCnt++;
//--------------------------------
//現在回転角度 + 速度
//--------------------------------
D3DXVECTOR3 vecRotValue( m_vecSRot.x +=m_vecRotUnit.x,
m_vecSRot.y +=m_vecRotUnit.y,
m_vecSRot.z +=m_vecRotUnit.z);

//--------------------------------
//行列合成
//--------------------------------
m_matRst = m_matTarget;
if(!m_bSelf)//任意座標中心回転
{
//--------------------------------------------------------
// 回転ターゲット位置(V) 回転中心位置(O)の値 ||VO||を求め、移動させておく
// ||VO||の距離分原点中心から離れ、回転することになり、回転後の位置に
// 回転中心までの距離を加算することで任意位置中心回転座標を取得。
//--------------------------------------------------------
m_matRst._41 = m_matTarget._41 - m_vecRotCenter.x;
m_matRst._42 = m_matTarget._42 - m_vecRotCenter.y;
m_matRst._43 = m_matTarget._43 - m_vecRotCenter.z;
}
//--------------------------------
//ヨー・ピッチ・ロールを指定してクォータニオンを作成
//--------------------------------
D3DXQUATERNION qRst(0,0,0,1.0f);
D3DXQuaternionRotationYawPitchRoll(&qRst,m_vecSRot.y,m_vecSRot.x,m_vecSRot.z);
D3DXMATRIX matRot;
D3DXMatrixRotationQuaternion(&matRot,&qRst); //クォータニオンの計算を行う行列を作成
D3DXMatrixMultiply(&m_matRst,&m_matRst,&matRot);//合成
//--------------------------------------------------------
// 回転後、回転中心までの距離を加算し、任意位置中心回転座標を取得。
//--------------------------------------------------------
if( !m_bSelf )//任意座標中心回転
{
m_matRst._41 += m_vecRotCenter.x;
m_matRst._42 += m_vecRotCenter.y;
m_matRst._43 += m_vecRotCenter.z;
}
else//ターゲットで指定された行列の位置中心回転
{
//--------------------------------
//元の位置に移動
//--------------------------------
m_matRst._41 = m_matTarget._41;
m_matRst._42 = m_matTarget._42;
m_matRst._43 = m_matTarget._43;
}
//--------------------------------
//終了チェック
//--------------------------------
if(m_dwRotFrameCnt >= m_dwRotFrameSize)
{
m_dwRotFrameCnt = 0;//フレームカウント初期化
m_dwRotFrameSize = 0;//アニメーション終了
m_type&=(~ROTATION) ;//フラグオフ
}
return TRUE;
}//if( m_type&ROTATION && m_dwRotFrameSize != 0)
return FALSE;
}

DirectX 算術関数(韓国語)

まあ 俺の母国語だから日本語訳わ要らんか
日本語がほしい人はMSDNを参照してくだされ!!!

---------------------------------------------------------
DIRECT3DX 산술 함수



Color관련
D3DXColorAdd - 2 개의 색값을 덧셈 해, 새로운 색값을 생성 한다.
D3DXColorAdjustContrast - 색의 콘트라스트값을 조정한다.
D3DXColorAdjustSaturation - 색의 채도값을 조정한다.
D3DXColorLerp - 선형 보간을 사용해 색값을 생성 한다.
D3DXColorModulate - 2 개의 색을 블렌드 한다.
D3DXColorNegative - 있는 색값에 대한 부의 색값을 생성 한다.
D3DXColorScale - 색값을 스케일링 한다.
D3DXColorSubtract - 2 개의 색값을 뺄셈 해, 새로운 색값을 생성 한다.

기타
D3DXFloat16To32Array - 16 비트 부동 소수점의 배열을 32 비트 부동 소수점으로 변환한다.
D3DXFloat32To16Array - 32 비트 부동 소수점의 배열을 16 비트 부동 소수점으로 변환한다.
D3DXFresnelTerm - 후레넬항을 계산한다.

행렬 관련
D3DXCreateMatrixStack - ID3DXMatrixStack 인터페이스의 인스턴스를 생성 한다.
D3DXMatrixAffineTransformation - 아핀 변환 행렬을 생성 한다.
D3DXMatrixDeterminant - 행렬의 행렬식을 돌려준다.
D3DXMatrixIdentity - 단위행렬을 생성 한다.
D3DXMatrixInverse - 행렬의 역행열을 계산한다.
D3DXMatrixIsIdentity - 행렬이 단위행렬인지 아닌지를 판정한다.
D3DXMatrixLookAtLH - 왼손 좌표계 뷰 행렬을 생성 한다.
D3DXMatrixLookAtRH - 오른손 좌표계 뷰 행렬을 생성 한다.
D3DXMatrixMultiply - 2 개의 행렬의 적을 계산한다.
D3DXMatrixMultiplyTranspose - 2 개의 행렬의 전치적을 계산한다.
D3DXMatrixOrthoLH - 왼손 좌표계 정사영 행렬을 생성 한다.
D3DXMatrixOrthoOffCenterLH - 커스터마이즈 한 왼손 좌표계 정사영 행렬을 생성 한다.
D3DXMatrixOrthoOffCenterRH - 커스터마이즈 한 오른손 좌표계 정사영 행렬을 생성 한다.
D3DXMatrixOrthoRH - 오른손 좌표계 정사영 행렬을 생성 한다.
D3DXMatrixPerspectiveFovLH - 시야에 근거해, 왼손 좌표계 퍼스펙티브 투영 행렬을 생성 한다.
D3DXMatrixPerspectiveFovRH - 시야에 근거해, 오른손 좌표계 퍼스펙티브 투영 행렬을 생성 한다.
D3DXMatrixPerspectiveLH - 왼손 좌표계 퍼스펙티브 투영 행렬을 생성 한다.
D3DXMatrixPerspectiveOffCenterLH - 커스터마이즈 한 왼손 좌표계 퍼스펙티브 투영 행렬을 생성 한다.
D3DXMatrixPerspectiveOffCenterRH - 커스터마이즈 한 오른손 좌표계 퍼스펙티브 투영 행렬을 생성 한다.
D3DXMatrixPerspectiveRH - 오른손 좌표계 퍼스펙티브 투영 행렬을 생성 한다.
D3DXMatrixReflect - 평면에 대해서 좌표계를 반전한 행렬을 생성 한다.
D3DXMatrixRotationAxis - 임의의 축을 회전축으로 해 회전하는 행렬을 생성 한다.
D3DXMatrixRotationQuaternion - 쿼터니온으로부터 회전 행렬을 생성 한다.
D3DXMatrixRotationX - x 축을 회전축으로 해 회전하는 행렬을 생성 한다.
D3DXMatrixRotationY - y 축을 회전축으로 해 회전하는 행렬을 생성 한다.
D3DXMatrixRotationYawPitchRoll - 요, 피치, 및 롤을 지정해 행렬을 생성 한다.
D3DXMatrixRotationZ - z 축을 회전축으로 해 회전하는 행렬을 생성 한다.
D3DXMatrixScaling - x 축, y 축, z 축으로 따라 스케일링 하는 행렬을 생성 한다.
D3DXMatrixShadow - 지오메트리를 평면에 투영 하는 행렬을 생성 한다.
D3DXMatrixTransformation - 변환 행렬을 생성 한다.
D3DXMatrixTranslation - 오프셋(offset)를 지정해 행렬을 생성 한다.
D3DXMatrixTranspose - 행렬의 전치행렬을 돌려준다.

평명 관련
D3DXPlaneDot - 평면과 4D 벡터의 내적을 계산한다.
D3DXPlaneDotCoord - 평면과 3D 벡터의 내적을 계산한다. 벡터의 w 파라미터는, 1 이다고 보여진다.
D3DXPlaneDotNormal - 평면과 3D 벡터의 내적을 계산한다. 벡터의 w 파라미터는, 0 이다고 보여진다.
D3DXPlaneFromPointNormal - 점트와 법선으로부터 평면을 생성 한다.
D3DXPlaneFromPoints - 3 개의 점으로부터 평면을 생성 한다.
D3DXPlaneIntersectLine - 평면과 직선의 교점을 조사한다.
D3DXPlaneNormalize - 평면의 법선의 길이를 정규화하기 위해(때문에), 평면의 계수를 정규화한다.
D3DXPlaneTransform - 행렬을 사용해 평면을 변환 한다. 입력 행렬은, 실제의 변환의 역전치행렬이다.
D3DXPlaneTransformArray - 행렬을 사용해 평면을 변환 한다. 입력 행렬은, 실제의 변환의 역전치행렬이다.

쿼터니온 관련
D3DXQuaternionBaryCentric - 중심 좌표의 쿼터니온을 돌려준다.
D3DXQuaternionConjugate - 쿼터니온의 공역을 돌려준다.
D3DXQuaternionDot - 2 개의 쿼터니온의 내적을 돌려준다.
D3DXQuaternionExp - 지수함수를 계산한다.
D3DXQuaternionIdentity - 항등 쿼터니온을 돌려준다.
D3DXQuaternionInverse - 쿼터니온을 모두 부려, 재정규화한다.
D3DXQuaternionIsIdentity - 쿼터니온이 항등 쿼터니온일지 어떨지를 판정한다.
D3DXQuaternionLength - 쿼터니온의 길이를 돌려준다.
D3DXQuaternionLengthSq - 쿼터니온의 길이의 2 승을 돌려준다.
D3DXQuaternionLn - 자연대수를 계산한다.
D3DXQuaternionMultiply - 2 개의 쿼터니온의 적을 계산한다.
D3DXQuaternionNormalize - 정규화한 길이의 쿼터니온을 계산한다.
D3DXQuaternionRotationAxis - 임의의 축을 회전축으로서 쿼터니온을 회전시킨다.
D3DXQuaternionRotationMatrix - 회전 행렬로부터 쿼터니온을 생성 한다.
D3DXQuaternionRotationYawPitchRoll - 요•피치•롤을 지정해 쿼터니온을 생성 한다.
D3DXQuaternionSlerp - 구면선형 보간을 사용해, 2 개의 쿼터니온간을 보간 한다.
D3DXQuaternionSquad - 구면2차 보간을 사용해, 쿼터니온간을 보간 한다.
D3DXQuaternionSquadSetup - 구면2차 보간의 제어 포인트를 설정한다.
D3DXQuaternionToAxisAngle - 쿼터니온의 회전축과 회전 각도를 계산한다.

벡터 관련
<2D 벡터>
D3DXVec2Add - 2 개의 2D 벡터를 추가한다.
D3DXVec2BaryCentric - 지정한 2D 벡터를 사용해, 중심 좌표의 점을 돌려준다.
D3DXVec2CatmullRom - 지정된 2D 벡터를 사용해, Catmull-Rom 보간을 실행한다.
D3DXVec2CCW - 2 개의 2D 벡터의 외적을 계산해, z 요소를 돌려준다.
D3DXVec2Dot - 2 개의 2D 벡터의 내적을 계산한다.
D3DXVec2Hermite - 지정된 2D 벡터를 사용해, 에르미트의 스플라인 보간을 실행한다.
D3DXVec2Length - 2D 벡터의 길이를 돌려준다.
D3DXVec2LengthSq - 2D 벡터의 길이의 2 승을 돌려준다.
D3DXVec2Lerp - 2 개의 2D 벡터간의 선형 보간을 실행한다.
D3DXVec2Maximize - 2 개의 2D 벡터의 최대치로 구성되는 2D 벡터를 돌려준다.
D3DXVec2Minimize - 2 개의 2D 벡터의 최소 값으로 구성되는 2D 벡터를 돌려준다.
D3DXVec2Normalize - 2D 벡터의 정규화한 벡터를 돌려준다.
D3DXVec2Scale - 2D 벡터를 스케일링 한다.
D3DXVec2Subtract - 2 개의 2D 벡터를 뺄셈 한다.
D3DXVec2Transform - 지정된 행렬에 의해 2D 벡터를 변환 한다.
D3DXVec2TransformArray - 지정된 행렬에 의해 2D 벡터의 배열을 변환 한다.
D3DXVec2TransformCoord - 지정된 행렬에 의해 2D 벡터를 변환 해, 그 결과를 w = 1 에 투영 한다.
D3DXVec2TransformCoordArray - 지정된 행렬에 의해 배열 (x, y, 0, 1)을 변환 해, 그 결과를 w = 1 에 투영 한다.
D3DXVec2TransformNormal - 지정된 행렬에 의해 2D 벡터 법선을 변환 한다.
D3DXVec2TransformNormalArray - 지정된 행렬에 의해 배열 (x, y, 0, 0)을 변환 한다.

<3D 벡터>
D3DXVec3Add - 2 개의 3D 벡터를 추가한다.
D3DXVec3BaryCentric - 지정한 3D 벡터를 사용해, 중심 좌표의 점을 돌려준다.
D3DXVec3CatmullRom - 지정된 3D 벡터를 사용해, Catmull-Rom 보간을 실행한다.
D3DXVec3Cross - 2 개의 3D 벡터의 외적을 계산한다.
D3DXVec3Dot - 2 개의 3D 벡터의 내적을 계산한다.
D3DXVec3Hermite - 지정된 3D 벡터를 사용해, 에르미트의 스플라인 보간을 실행한다.
D3DXVec3Length - 3D 벡터의 길이를 돌려준다.
D3DXVec3LengthSq - 3D 벡터의 길이의 2 승을 돌려준다.
D3DXVec3Lerp - 2 개의 3D 벡터간의 선형 보간을 실행한다.
D3DXVec3Maximize - 2 개의 3D 벡터의 최대치로 구성되는 3D 벡터를 돌려준다.
D3DXVec3Minimize - 2 개의 3D 벡터의 최소 값으로 구성되는 3D 벡터를 돌려준다.
D3DXVec3Normalize - 3D 벡터의 정규화한 벡터를 돌려준다.
D3DXVec3Project - 개체 공간으로부터 스크린 공간에 벡터를 투영 한다.
D3DXVec3ProjectArray - 개체 공간으로부터 스크린 공간에 벡터를 투영 한다.
D3DXVec3Scale - 3D 벡터를 스케일링 한다.
D3DXVec3Subtract - 2 개의 3D 벡터를 뺄셈 한다.
D3DXVec3Transform - 지정된 행렬에 의해 벡터 (x, y, z, 1)를 변환 한다.
D3DXVec3TransformArray - 지정된 행렬에 의해 배열 (x, y, z, 1)을 변환 한다.
D3DXVec3TransformCoord - 지정된 행렬에 의해 3D 벡터를 변환 해, 그 결과를 w = 1 에 투영 한다.
D3DXVec3TransformCoordArray - 지정된 행렬에 의해 배열 (x, y, z, 1)을 변환 해, 그 결과를 w = 1 에 투영 한다.
D3DXVec3TransformNormal - 지정된 행렬에 의해 3D 벡터 법선을 변환 한다.
D3DXVec3TransformNormalArray - 지정된 행렬에 의해 배열 (x, y, z, 0)을 변환 한다.
D3DXVec3Unproject - 스크린 공간으로부터 개체 공간에 벡터를 투영 한다.
D3DXVec3UnprojectArray - 스크린 공간으로부터 개체 공간에 벡터를 투영 한다.

<4D 벡터>
D3DXVec4Add - 2 개의 4D 벡터를 추가한다.
D3DXVec4BaryCentric - 지정한 4D 벡터를 사용해, 중심 좌표의 점을 돌려준다.
D3DXVec4CatmullRom - 지정된 4D 벡터를 사용해, Catmull-Rom 보간을 실행한다.
D3DXVec4Cross - 4 차원 벡터의 외적을 산출한다.
D3DXVec4Dot - 2 개의 4D 벡터의 내적을 요구한다.
D3DXVec4Hermite - 지정된 4D 벡터를 사용해, 에르미트의 스플라인 보간을 실행한다.
D3DXVec4Length - 4D 벡터의 길이를 돌려준다.
D3DXVec4LengthSq - 4D 벡터의 길이의 2 승을 돌려준다.
D3DXVec4Lerp - 2 개의 4D 벡터간의 선형 보간을 실행한다.
D3DXVec4Maximize - 2 개의 4D 벡터의 최대치로 구성되는 4D 벡터를 돌려준다.
D3DXVec4Minimize - 2 개의 4D 벡터의 최소 값으로 구성되는 4D 벡터를 돌려준다.
D3DXVec4Normalize - 4D 벡터의 정규화한 벡터를 돌려준다.
D3DXVec4Scale - 4D 벡터를 스케일링 한다.
D3DXVec4Subtract - 2 개의 4D 벡터를 뺄셈 한다.
D3DXVec4Transform - 지정된 행렬에 의해 4D 벡터를 변환 한다.
D3DXVec4TransformArray - 행렬을 지정해 벡터의 배열을 변환 한다.

2009年11月8日日曜日

2009年11月6日金曜日

IPhoneアプリEitan2000Ver1.1リリース



レビュー中だから来週くらいかな
うほ!

みんなさん 英単語勉強しましよう!!

作品作成中!



今月1日からゲーム業界への転職を目指し、退職…
まずは作品だ!!
うほ!

タイトルはCu
学生時代に作ってたボロイソースを全面的に直し、現在取り組んでいる。

今日も閉じこもってがんばるんだ!!