U3DVR向量点乘与叉乘概念及几何模型公式应用

Posted SYFStrive

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了U3DVR向量点乘与叉乘概念及几何模型公式应用相关的知识,希望对你有一定的参考价值。

@作者 : SYFStrive

@博客首页 : HomePage

📌:个人社区(欢迎大佬们加入) 👉:社区链接🔗

📌:觉得文章不错可以点点关注 👉:专栏连接🔗




👉 Unity工具脚本(🔥)

目录

⭐️ 游戏开发中数学的【向量的点乘】和【向量的叉乘】运算
⭐️【点乘】静态方法:Vector3.Dot(Va, Vb);返回一个数值。数值等于0 👉向量垂直
⭐️【叉乘】静态方法:Vector3.Cross(Va, Vb);返回一个新的向量 👉 垂直与Va,Vb
😶‍🌫️点乘案例 👉 飞行模拟器…..
😶‍🌫️点乘案例 👉 合金弹头…..
🎏向量的点乘运算与叉乘运算在Unity中的实际用途和静态方法👇

向量长度

如下原点到(12,5)及为所需的距离

计算方法如 👇

  1. 两点之间的距离
    公式:(勾股定理)👉 1212+55 (数值参考图所得)

  2. 使用内置变量
    magnitude 返回该向量的长度。(只读)
    sqrMagnitude 返回该向量的平方长度。(只读)

  3. 代码实现如 👇

应用:原点到a对象的位置

	 public GameObject a;
	 private void Start()
	 
	     Debug.Log(Vector3.Magnitude(a.transform.position));
	 

2D VS 3D

3D比2D多了一个Z轴(深度轴)👉 遵循左手定理~~~如 👇

3D空间图示如 👇

计算距离大小类型2D

点乘

🎏 在Unity3D里面。 两个向量的点乘所得到的是两个向量的余弦值,也就是-1 到1之间,0表示垂直,-1表示相反,1表示相同方向。

应用场景如 👇

  1. 如果点乘的结果大于0,是正数 👉 (适当给点减速)

  1. 如果点乘的结果等于0,等于0 👉 (适当给点拉力)

  1. 如果点乘的结果小于0,是负数 👉(坠机)

计算方法如 👇

  1. 点乘数学计算公式

    🎏A点坐标 、B点坐标

    🎏公式:ab=|a||b|cos∠

    🎏判断垂直公式:(Ax * Bx)+(Ay * By)+(Az * Bz)=0 👉(垂直)

  2. Unity提供了一个静态的方法如 👇


    向量的点乘 Dot 两个向量的点积。

  3. 代码实现如 👇

应用:检测俩个方向向量是否垂直


    public GameObject a;
    public GameObject b;
    private void Update()
    
        Vector3 dir = (a.transform.position - transform.position).normalized;
        Vector3 dir1 = (b.transform.position - transform.position).normalized;
        Debug.Log(Vector3.Dot(dir, dir1));  
    

叉乘

🎏 两个向量的叉乘又叫向量积、外积、叉积所得到的是两个向量所组成的面的法向量,分两个方向。

例如:向量A 👉 向量B 进行叉乘运算 👉 不同于点乘会输出一个值 、而是输入一个垂直于A、B向量的向量(高中证明的法向量)

计算方法如 👇

  1. 点乘数学计算公式

已知:A点坐标 、B点坐标

数学内部的运算公式如 👇

  1. Unity提供了一个静态的方法如 👇

  1. 代码实现如 👇

应用:如知道开炮的方向以及我们要向哪边旋转 👉 游戏中我们应该在哪一个轴上施加扭力【Torque】测试如 👇


    public GameObject a;
    public GameObject b;
    private void Update()
    
        Vector3 dir = (a.transform.position - transform.position).normalized;
        Vector3 dir1 = (b.transform.position - transform.position).normalized;
        Debug.Log(Vector3.Cross(dir, dir1));
    


本文到这里就结束了,大佬们的支持是我持续更新的最大动力,希望这篇文章能帮到大家💪

 

                 相关专栏连接🔗

下篇文章再见ヾ( ̄▽ ̄)ByeBye

以上是关于U3DVR向量点乘与叉乘概念及几何模型公式应用的主要内容,如果未能解决你的问题,请参考以下文章

向量点乘叉乘、矩阵、OpenGL变化

矩阵与点乘与叉乘在Unity中的区别

向量叉乘与叉乘矩阵

点积与叉乘的运算与物理意义

叉乘的几何意义

[Python系列-15]:人工智能 - 数学基础 -5- 向量内积(点乘)和外积(叉乘)概念及几何意义