官方网站作用,三门峡住房城乡建设局网站,网站建设 技术可行性,在线登录qq聊天入口文章目录 点乘#xff08;Dot Product#xff09;叉乘#xff08;Cross Product#xff09;向量归一化#xff08;Normalize#xff09;其他作用 unity开发中我们要计算角度#xff0c;判断位置#xff0c;常用点乘、叉乘、归一化等等#xff0c;我们看看他们的使用案… 文章目录 点乘Dot Product叉乘Cross Product向量归一化Normalize其他作用 unity开发中我们要计算角度判断位置常用点乘、叉乘、归一化等等我们看看他们的使用案例
点乘Dot Product
在Unity中的Vector3类提供了Dot()方法来计算两个向量的点乘。点乘的结果是一个标量值可以用于判断两个向量的方向关系或者计算投影长度等。
Vector3 vectorA new Vector3(1, 2, 3);
Vector3 vectorB new Vector3(4, 5, 6);float dotProduct Vector3.Dot(vectorA, vectorB);// 如果dotProduct 0表示vectorA和vectorB大致指向同一方向
// 如果dotProduct 0表示vectorA和vectorB大致指向相反方向
// 如果dotProduct 0表示vectorA和vectorB互相垂直。叉乘Cross Product
Unity中的Vector3类也提供了Cross()方法来计算两个三维向量的叉乘。叉乘结果是一个新的向量其方向垂直于原两个向量所在的平面并遵循右手定则。
Vector3 vectorA new Vector3(1, 0, 0); // 假设是X轴正方向
Vector3 vectorB new Vector3(0, 1, 0); // 假设是Y轴正方向Vector3 crossProduct Vector3.Cross(vectorA, vectorB); // 结果应该是Z轴正方向的单位向量// 在Unity中常利用叉乘来计算面法线、旋转轴等信息。向量归一化Normalize
Normalize()方法用于将一个非零向量转换为单位向量即模长为1但方向保持不变的向量。这对于描述方向而不关心大小的场合非常有用如光源、观察方向、表面法线等。
Vector3 nonNormalizedVector new Vector3(3, 4, 5); // 长度不为1的向量Vector3 normalizedVector Vector3.Normalize(nonNormalizedVector); // 此时normalizedVector的长度为1// 在Unity中例如我们想要获取某个物体朝向的方向而不关心其速度或力的大小时就会使用归一化向量。其他作用
当然向量的点乘、叉乘以及归一化在Unity和其他游戏引擎或计算机图形学领域中还有更多的应用
点乘Dot Product
计算角度通过点乘可以求出两个单位向量之间的夹角余弦值进而得到角度。例如在计算物体与光源的照射角度时会用到。
float angleInRadians Mathf.Acos(Vector3.Dot(normalizedVectorA, normalizedVectorB));投影长度如果需要计算一个向量在另一个向量方向上的投影长度也可以使用点乘。 光照模型在Phong光照模型中点乘用于计算表面法线与光线方向的夹角影响漫反射光强。
叉乘Cross Product 平面法线在三维空间中可以通过两个不共线的向量进行叉乘来获取所在平面的法线向量。 旋转轴在旋转操作中确定一个旋转轴通常需要通过两个非平行的方向向量叉乘得到。 力矩计算在物理学模拟中计算力对物体产生的力矩需要用到叉乘即力矢量和力臂从转动轴到力的作用点的叉乘。
向量归一化Normalize 方向处理在许多情况下我们只关心物体的朝向而不关心其速度或大小这时将速度或加速度向量归一化就可以得到方向信息。 纹理坐标生成在某些高级渲染技术如环境映射中通过归一化的视线方向向量来查询立方体贴图等。 单位向量阵列构建在构建球形或圆柱形的法线贴图时需要创建一系列均匀分布的单位向量这就要用到归一化操作。
总结来说在Unity开发过程中点乘、叉乘和归一化是非常基本且实用的操作广泛应用于碰撞检测、物理模拟、光照计算、相机控制等多个领域。
python推荐学习汇总连接 50个开发必备的Python经典脚本(1-10)
50个开发必备的Python经典脚本(11-20)
50个开发必备的Python经典脚本(21-30)
50个开发必备的Python经典脚本(31-40)
50个开发必备的Python经典脚本(41-50) ————————————————
最后我们放松一下眼睛