3D数学基础:图形与游戏开发笔记1

3D数学基础:图形与游戏开发——关于向量

向量运算
行向量加减乘除都是各分量的加减乘除
列向量点积和叉积

1.点积:

点积盘返回一个标量(普通数字),
若是点积=0,则两向量正交(垂直)
若是点积>0,则两向量夹角小于90
若是点积>0,则两向量夹角大于90

公式:u·v=(u1 * v1)+(u2 * v2)+(u3 * v3)=s
幸运的是,有相关函数进行生成:

FLAOT D3DXVec3Dot(
	const D3DXVECTOR3* pV1,
	const D3DXVECTOR3* pV2,
);

所以点积判断角度

2.叉积

叉积返回向量
返回的向量与参与叉积运算的两个向量正交
PS:两向量叉积的顺寻决定了产生向量的方向

公式较繁琐,直接用函数:

D3DXVECTOR3* D3DXVec3Cross(
	D3DXVECTOR3* pOut,
	CONST D3DXVECTOR3* pV1,
	CONST D3DXVECTOR3* pV2,
);

3.向量的模(长度)
各个分量平方和的二次方根,(的确就是那个距离公式。。。)

4.向量的规范化
就是将各个分量除以向量的模。
一开始并不明白这有什么用,反而改变了向量。
然而向量拥有方向和大小两个属性,也只有着两个属性。
规范化的意义在于使其变成单位向量(舍弃大小,只要方向),指出方向就行了。
而且很多的D3DX函数都是需要规范化后的向量的。
幸运的是,有专门的函数进行向量规范化:

D3DXVECTOR3 * D3DXVec3Normalize(
	D3DXVECTOR3* pOut,
	CONST D3DXVECTOR3* pV
);

其实,个人而言,向量代表着某种变换。
而点与向量在DirectX中都是用4D向量的,如何区别两者呢?
点w分量为1——确保点的平移变换顺利进行
向量w分量为0——防止对向量进行平移变换

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值