【DirectX 2D游戏编程基础】directx 精灵绘图的应用,锚点与变换

这篇博客介绍了DirectX 2D游戏编程中D3DXMatrixTransformation2D函数的使用,重点讲解了精灵的锚点概念和如何进行图像的平移、旋转和缩放变换。通过定义矩阵并应用变换函数,阐述了矩阵在图像变换中的作用,解释了单位矩阵和坐标乘法的关系,并给出代码示例。
摘要由CSDN通过智能技术生成

        首先,工程文件链接http://download.csdn.net/detail/shangdi712/9051999 使用工程文件时候,切记配置directx环境

         其实,这个博客只介绍一个函数,就是D3DXMatrixTransformation2D,矩阵变换函数,在使用这个函数之前,我们需要先定义一个矩阵变量

D3DXMATRIX g_matWorld;

这是D3D里面定义的矩阵,用于实现图片的平移,旋转,缩放变换,而图像的锚点是什么呢,我们暂且把它认为成逻辑上的中心点,默认是在图片左上角,旋转的时候以它为中心,显示的时候,将这个点认为是图片坐标系的原点,也就是说,如果我们不设置位置的话,这个图片永远都把锚点放到最左上角,超出 的部分显示,好了,现在让我们看一下这个函数

D3DXMatrixTransformation2D(
		&g_matWorld,	//返回的矩阵
		nullptr,		//缩放的中心
		0.0f,			//影响缩放的因素
		&D3DXVECTOR2(1.0f, 1.0f),	//在X、Y方向的缩放量
		&D3DXVECTOR2(0.0f, 0.0f),	//旋转中心
		fAngle,			//旋转弧度
		&g_playerPos//平移量
		);


要使这个函数生效,我们需要调用这个函数

g_pSprite->SetTransform(&g_matWorld);

最后,我们一定要记得恢复渲染状态

D3DXMatrixIdentity(&g_matWorld);

    但是,图片的变换,跟矩阵有什么关系呢,好的

假设我们有这样一个单位矩阵,再假设我们的图片坐标为写X 和Y,我们将x 和 y竖着写,最底下给0,然后和矩阵相乘会发生什么

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值