计算机图形学中向量点乘和叉乘的用途_从零开始图形学 | 线性代数的中的点乘和叉乘...

图片和内容均来自GAMES101,万分感谢大神的分享! http://games-cn.org/

线性代数在图形学中的应用:

Dot Pruduct 点乘

点乘可以用来计算两个单位向量的夹角,两个模为1向量的点积,获得的值即为 cosθ。如下

点乘

这个夹角值可以用来

1.描述两个向量是否足够接近;

2.解构向量(通过一个向量在另一个向量的投影分量);

3.判断是正向还是背向;

应用栗子:

金属反射的Specular影响阈值,当视线在光源反射的一定范围内就可以观察到,这个范围就是反射光线和视线的夹角。

点乘在笛卡尔坐标系下的计算方式

Cross Pruduct 叉乘

叉乘计算是遵循右手螺旋定则的,在OpenGL里也是右手,然而在DirectX大部分是都是左手,这也解释了为什么Substance要经常翻转法线。

需要说明的是,叉乘返回的结果是向量,所以当向量叉乘自己时,虽然sin0 = 0, 返回的依然是0向量。

两个向量的叉积可以用来

1.判断向量的左右方向:正交坐标系,如果a叉乘b和 y是同向,则a在b左边

2.判断点在面的内外:假如任{意点P和某顶点组成的向量}叉乘 {顺时针 或者 逆时针 顶点组成的各个向量},返回的结果如果显示P都在三个向量的同一侧,则P点在面内。这个可以延伸到碰撞检测或者命中算法,以及三角形光栅化的理论基础,通过判断像素是否在三角形的内部,从而得出三角形覆盖了哪些像素。

image.png

Matrix 矩阵

image.png

注:3行2列和2行3列是可以运算的, 但是3行2列和3行4列就不行了。

某行某列矩阵运算的结果就是 {第一个矩阵的行} 点乘 {第二个矩阵的列},例如

第一个?处在1行2列,= 1x6+3x7 = 27

第二个?处在3行4列,= 0x4+4x3 = 12

这里可以用矩阵的方式来描述点乘和叉乘

另一种计算方式

当两个矩阵相乘结果是单位矩阵(对角阵)时,就称一个矩阵为另一个矩阵的逆

互逆矩阵

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值