|
|
求高手DX,2D部分的旋转方式算法.
在程序中,我建立4个顶点,放进一张图.怎么才能将图旋转.
谢谢..
[code=C/C++]
LHxxSCREENVERTEX g_Vertices[] =
{
{ 0.0f, 0.0f, 0.5f, 1.0f, 0.0f, 0.0f}, //红色
{ 200.0f, 0.0f, 0.5f, 1.0f, 1.0f, 0.0f},//蓝色
{ 0.0f , 200.0f, 0.5f, 1.0f, 0.0f, 1.0f},//绿色
{ 200.0f, 200.0f, 0.5f, 1.0f, 1.0f, 1.0f }//白色
};//0xffff0000//红色0xff00ff00//蓝色 0xff00ffff//绿色0xffffffff//白色
// 4-------6 + 2
// | / / |
// | / / |
// | / / |
// | / / |
// | / / |
// 5+ 3+------ 1
//给存放矩阵点分配空间
ob->LHxxScrVertex=(LHxxSCREENVERTEX*)malloc(4*sizeof(LHxxSCREENVERTEX ));
memset(ob->LHxxScrVertex,0,4*sizeof(LHxxSCREENVERTEX ));
// Create the vertex buffer.
if( FAILED( m_pd3dDevice->CreateVertexBuffer( 4*sizeof(LHxxSCREENVERTEX),
0, LHxxSCREENVERTEXFVF,
D3DPOOL_DEFAULT, &ob->LHxx2DMVertexBuffer,NULL ) ) )
{ MessageBox(SAVE_HWND, "CREATE_2DIMAGE vbuf", "error tex", MB_OK);return;}
// Now we fill the vertex buffer. To do this, we need to Lock() the VB to
// gain access to the vertices. This mechanism is required becuase vertex
// buffers may be in device memory.
LHxxSCREENVERTEX* pVertices;
if( FAILED( ob->LHxx2DMVertexBuffer->Lock( 0, sizeof(g_Vertices), (void**)&pVertices, 0 ) ) ) {return;}
memcpy( pVertices, g_Vertices, sizeof(g_Vertices) );
for( DWORD i=0; i<4; i++ )
{ob->LHxxScrVertex=((LHxxSCREENVERTEX *)pVertices);}
ob->LHxx2DMVertexBuffer->Unlock();
[/code]
不知怎么搞.还真转不了,移动放大都行.就是转不动..
如果有代码,可以发给我,就最好了.QQ:359397187
|
|