سلام
برای rotate و scale تصاویر دو بعدی ( و نه اشکال) می توان از ماتریسها استفاده کرد , یا به بیان دیگر می توانیم از امکانات directx در این مورد بهره بگیریم یا خیر؟لطفا توضیح دهید.
Printable View
سلام
برای rotate و scale تصاویر دو بعدی ( و نه اشکال) می توان از ماتریسها استفاده کرد , یا به بیان دیگر می توانیم از امکانات directx در این مورد بهره بگیریم یا خیر؟لطفا توضیح دهید.
بله می توان.
ممنون علی
ممنون از توضیحاتتون! :sunglass:نقل قول:
لطفا توضیح دهید
سلام
ID3DXSPRITE اینترفیسی هست که اینکارو انجام میده. میتونه یک Texture رو با یک تبدیل دو بعدی آفین (دوران، انتقال، بزرگنمایی) دلخواه نمایش بده. در مورد نحوه استفاده اش به راهنمای DirectX SDK مراجعه کنید.
ممنون علی
اینم یه نمونه:
void Dxtest2Dlg::Draw( IDirect3DDevice9 *pocDevice )
{
D3DXIMAGE_INFO d3dxImageInfo;
D3DXCreateTextureFromFileEx( pocDevice,
"fighter.bmp",
1152,//m_nWidth, // I had to set width manually. D3DPOOL_DEFAULT works for textures but causes problems for D3DXSPRITE.
216,//m_nHeight, // I had to set height manually. D3DPOOL_DEFAULT works for textures but causes problems for D3DXSPRITE.
1, // Don't create mip-maps when you plan on using D3DXSPRITE. It throws off the pixel math for sprite animation.
0, //D3DPOOL_DEFAULT,
D3DFMT_UNKNOWN,
D3DPOOL_MANAGED, //D3DPOOL_DEFAULT,
D3DX_DEFAULT,
D3DX_DEFAULT,
D3DCOLOR_COLORVALUE(0.0f,0.0f,0.0f,1.0f),
&d3dxImageInfo,
NULL,
&m_pSpriteTexture );
D3DXCreateSprite( pocDevice, &m_pD3DXSprite );
D3DXVECTOR3 vCenter( 0.0f, 0.0f, 0.0f );
D3DXVECTOR3 vPosition( 0.0f, 0.0f, 0.0f );
D3DXMATRIX matRotate;
D3DXVECTOR2 vSpriteCenter( 125, 54 ); ///center of rotation
//strech 150% and Rotate 5.0 Radian
D3DXMatrixAffineTransformation2D( &matRotate, 1.5, &vSpriteCenter, 5.0f, NULL );
m_pD3DXSprite -> Begin( D3DXSPRITE_ALPHABLEND );
{
m_pD3DXSprite->SetTransform( &matRotate );
m_pD3DXSprite->Draw( m_pSpriteTexture,
CRect( 0, 0, 250, 108 ),
&vCenter,
&vPosition,
D3DCOLOR_COLORVALUE(1.0f,1.0f,1.0f,1.0f) );
}
m_pD3DXSprite->End();
}
اگه کسی نمونه بهتری نوشته که هر سه مورد رو (دوران، انتقال، بزرگنمایی) رو شامل بشه و بهینه تر هم باشه لطفا ارائه کنه! در نمونه فوق دوران و بزرگنمایی پشتیبانی می شود. :wink: