D3D 里面旋转与坐标系的问题

「已注销」 2018-11-24 10:56:58
用 D3DXCreateSphere 和 D3DXCreateTextureFromFile 之后, 把球和对应的纹理都设置好了
然后通过 mesh->DrawSubset 在 render 中画出来
为了让他转起来, 我添加了以下代码

static auto y {0.0f};    //y 就是旋转的角度, 会变化
IDirect3DDevice *device; //设备

主要的旋转代码 :
D3DXMATRIX y_rot {};
D3DXMatrixRotationY(&y_rot, y);
const D3DXMATRIX &world {y_rot};
device->SetTransform(D3DTS_WORLD, &world);


这样还不够, 因为这样创建出来的球是充满整个窗体的
所以要设置一下 Camera :
D3DXVECTOR3 pos(0.0f, 0.0f, -5.0f);
D3DXVECTOR3 target(0.0f, 0.0f, 0.0f);
D3DXVECTOR up(0.0f, 1.0f, 0.0f);
D3DXMATRIX view {};
D3DXMatrixLookAtLH(&view, &pos, &target, &up);
device->SetTransform(D3DTS_VIEW, &view);
D3DXMATRIX proj {};
D3DXMatrixPerspectiveFovLH(&proj, D3DX_PI / 2.0f, static_cast<float>(window_width / window_height), 1.0f, 100.0f);
device->SetTransform(D3DTS_PROJECTION, &projection);


上面的代码是从网上资料参考的, 然后自己改了一下
主要的问题就是这个球顺时针转一下然后逆时针转一下
有没有方法让他只转一个方向
...全文
107 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

24,853

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 工具平台和程序库
社区管理员
  • 工具平台和程序库社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧