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

  • 阿里云国际版折扣https://www.yundadi.com

  • 阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6

    请添加图片描述

    @作者 : SYFStrive

    @博客首页 : HomePage

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

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

    请添加图片描述

    相关专栏

    👉 Unity工具脚本🔥

    目录

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

    向量长度

    如下原点到125及为所需的距离

    在这里插入图片描述

    计算方法如 👇

    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

    在这里插入图片描述

  • 阿里云国际版折扣https://www.yundadi.com

  • 阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6