D3D12学习笔记3.7——DirectXMath库提供的变换函数

本文介绍了DirectX数学库中的关键变换函数,包括缩放、旋转和平移矩阵的构建,以及向量与矩阵的乘积计算。展示了如何使用FXMVECTOR和XMMATRIX进行3D图形变换。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

·本次提供变换函数的应用:

#include "iostream"
#include "windows.h"
#include "DirectXMath.h"
#include "DirectXPackedVector.h"

using namespace std;
using namespace DirectX;
using namespace DirectX::PackedVector;

//重载<<运算符
ostream& XM_CALLCONV operator<<(ostream& os, FXMVECTOR v)
{

	XMFLOAT3 dest;
	XMStoreFloat3(&dest, v);
	os << "(" << dest.x << "," << dest.y << "," << dest.z << ")";
	return os;

}

//本次只展示相关的变换函数

//缩放矩阵
XMMATRIX XM_CALLCONV XMMatrixScaling(float ScaleX, float ScaleY, float ScaleZ);

//用一个3D向量中的分量来构建缩放矩阵
XMMATRIX XM_CALLCONV XMMatrixScalingFromVector(FXMVECTOR Scale);

//构建一个绕x轴旋转的矩阵Rx,yz轴类似
XMMATRIX XM_CALLCONV XMMatrixRotationX(float Angle);

//构建一个绕任意轴旋转的矩阵Rn
XMMATRIX XM_CALLCONV XMMatrixRotationAxis(FXMMATRIX Axis, float Angle);

//构建一个平移矩阵
XMMATRIX XM_CALLCONV XMMatrixTranslation(float OffsetX, float OffsetY, float OffsetZ);

//用一个3D向量中的分量来构建平移矩阵
XMMATRIX XM_CALLCONV XMMatrixTranslationFromVector(FXMVECTOR Offset);

//计算向量与矩阵的乘积,默认Vw=1,还有点矩阵乘积Vm=0
XMMATRIX XM_CALLCONV XMVector3Transform(FXMVECTOR V, CXMMATRIX M);

XMMATRIX XM_CALLCONV XMVector3TransformNormal(FXMVECTOR V, CXMMATRIX M);

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

言行物恒

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值