Unity3D-----三维数学(向量)

2023-11-02

一、向量

1、什么是向量

  • 一个数字列表,表示各个维度上的有向位移
  • 一个有大小有方向的物理量
    – 大小就是向量的模长
    – 方向描述了空间中向量的指向
  • 可以表示物体的位置和方向

2、向量的形式

三维向量,例如(1,2,3)
二维向量,例如(4,2)
在这里插入图片描述

3、向量的大小

  • 向量的大小即为模

  • 三维向量模的大小计算公式:√(x2+y2+z2

  • API : float dis=vector.magnitude

  • 模的平方 vector.sqrMagnitude

  • 在编写脚本时,比较两向量的模长,推荐使用模的平方进行比较,因为平方根的计算耗时长

4、向量的方向

  • 获取向量的方向也称 “标准化向量” 或 “归一化向量”;即获取该向量的单位向量
  • 单位向量:大小为1的向量
  • 计算公式: V / |V|===(向量/模长)
  • 几何意义:将该向量拉长或者缩短,使模长等于1
  • API: Vector3 vector2=vector1.normalized
    – vector2为vector1的单位向量
    vector1.Normalize();将vector1自身设置为单位向量

二、向量运算

1、向量相减

  • 等于各分量相加减
  • 公式:[x1,y1,z1]-[x2,y2,z2] = [x1-x2,y1-y2,z1-z2]
  • 几何意义:向量a与向量b相减,结果理解为以b的终点为始点,以a的终点为终点的向量,方向由b指向a
  • 应用:计算两点之间的距离和相对方向
    在这里插入图片描述

2、向量相加

  • 等于各分量相加和
  • 公式: [x1,y1,z1] + [x2,y2,z2] = [x1+x2,y1+y2,z1+z2]
  • 几何意义:向量a与向量b相加,平移使b的始点与a的重点重合,结果为以a的始点为始点,以b的终点为终点的向量
  • 应用:物体移动

3、向量与标量的乘除法

  • 乘法 : 该向量的各分量与标量相乘 k[x,y,z] = [kx,ky,kz]
  • 除法 : 该向量的各分量与标量相除 [x,y,z]/k = [x/k,y/k,z/k]
  • 几何意义 : 缩放向量长度

4、点乘

  • 又称 “点积” 或 “内积”
  • 公式 :各分量乘积合
  • [x1,y1,z1] * [x2,y2,z2]=x1x2+y1y2+z1z2
  • 几何意义: a*b=|a| * |b| * cos<a,b>;两个向量的单位向量相乘后再乘以二者夹角的余弦值
  • API : float dot=Vector3.Dot(va,vb)
  • 应用
    对于标准化过的向量,点乘结果等于两向量夹角的余弦值
    计算两向量的夹角
    float dot = Vector3.Dot(a.normalized,b.normalized);
    float angle = Mathf.Acos(dot) * Mathf.Rad2Deg

5、叉乘

  • 叉乘又称 “叉积” 或 " 外积 "
  • 公式 : [x1,y1,z1] * [x2,y2,z2] = [y1z2-z1y2,z1x2-x1z2,x1y2-y1x2]
  • 几何意义 : 结果为两个向量锁组成面的垂直向量,模长为两向量模长乘积再乘夹角的正弦值
  • API : Vector3 vector=Vector3.Cross(a,b)
  • 应用
    创建垂直于平面的向量
    判断两条向量相对位置

三、三角函数

1、角的度量单位

  • 角度Degree与弧度Radian
    – 两条射线从圆心向圆周射出,形成一个夹角和夹角正对的一段弧。当弧长等于圆周长的360分之一时,夹角为1度。弧长等于圆的半径时,夹角为1弧度。
    在这里插入图片描述
  • 角度与弧度的换算:
    – PI=180度--------1弧度=180度/PI--------1角度=PI/180度
    – 角度=>弧度 : 弧度=角度数 * PI/180
    – API : 弧度=角度数 * Mathf.Deg2Rad
    弧度=>角度 : 角度=弧度数 * 180/PI
    角度=弧度数 * Mathf.Rad2Deg
  • 在三角函数中弧度制可以简化计算

2、三角函数

  • 建立了直角三角形中角与边长比值的关系
  • 可用于根据一边一角,计算另外一边长
  • 公式:
    – (1)、正弦 sinx=a/c
    – (2)、余弦 cosx=b/c
    – (3)、正切 tanx=a/b;
    在这里插入图片描述
  • API : Mathf.Sin(float radian)
  • API : Mathf.Cos(float radian)
  • API : Mathf.Tan(float radian)

3、反三角函数

  • API : Mathf.ASin(float radian)
  • API : Mathf.ACos(float radian)
  • API : Mathf.ATan(float radian)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Unity3D-----三维数学(向量) 的相关文章

  • Unity3D 碰撞器和触发器

    对于碰撞器和触发器经常忘记用法 这次主要记录下以便于能够复习用 1 碰撞器 发生条件 1 碰撞的双方中一定至少要有一个Rigidbody存在 并且碰撞双方必须都要有碰撞体组件 2 碰撞双方若只有一个有刚体 那么那个刚体一定要处于运动的状态下
  • untiy的纹理格式介绍

    Desktop RGB Compressed DXT1 压缩的RGB纹理 这是最常见的漫反射纹理格式 4位 像素 32 KB 256x256 RGBA Compressed DXT5 压缩的RGBA纹理 这是漫反射和高光控制纹理的主要格式
  • Unity编辑器界面概述

    了解界面 如果您对编辑器界面没有非常地了解 那么请花一些时间查看并熟悉 Editor 编辑器 界面 Editor 主窗口由选项卡式窗口组成 这些窗口可重新排列 因此 Editor 的外观可能因项目或者开发者而异 具体取决于个人偏好 Wind
  • HLSL 偏导数 ddx / ddy

    HLSL ddx ddy 在光栅化的时刻 GPUs会在同一时刻并行运行很多Fragment Shader 但是并不是一个pixel一个pixel去执行的 而是将其组织在2x2的一组pixels分块中 去并行执行 偏导数就正好是计算的这一块像
  • Unity笔记:修改代码执行的默认打开方式

    使用 External Tools 偏好设置可设置用于编写脚本 处理图像和进行源代码控制的外部应用程序 External Script Editor 选择 Unity 应使用哪个应用程序来打开脚本文件 Unity 会自动将正确的参数传递给内
  • Unity编辑器扩展——进度条显示通用方法

    在我们使用Unity编辑器扩展做一些批处理的工具时 通常会需要显示一个进度条 这样不会让Unity一直卡住不动 使得使用者不知道当前的进展 那么如何显示进度条呢 涉及的相关API有 EditorUtility ClearProgressBa
  • Unreal Engine4蓝图编程学习(一)

    学习内容主要介绍了蓝图进行对象交互 升级玩家技能 升级AI敌人 跟踪游戏状态完成游戏体验等内容 内容来源于 Unreal Engine4蓝图可视化编程 书籍为2017年 与现在版本有一定区别 一 制作移动标靶 1 1 首先 我们想先创建一个
  • 【unity3D】创建TextMeshPro(TMP)中文字体(解决输入中文乱码问题)

    未来的游戏开发程序媛 现在的努力学习菜鸡 本专栏是我关于游戏开发的学习笔记 本篇是unity的TMP中文输入显示乱码的解决方式 创建 TextMeshPro 中文字体 遇到的问题描述 解决方式 Font Asset Creator 面板扩展
  • Unity使用Newtonsoft报错的解决方案

    文章目录 Unity 使用 Newtonsoft 报错的解决方案 问题描述 解决方法 方法一 使用 Unity 的 Package Manager 自动导入 方法二 访问 GitHub 下载 unitypackage 文件手动导入 Unit
  • 【Unity灯光与渲染技术】Global Illumination全局光照

    本系列主要参考Unity灯光与渲染技术教程Unity Lighting And Rendering 同时会加上一点个人实践过程和理解 分割线 这篇文章主要讲全局光照 在看教程的时候就有一个点不是很理解 就是作者开启物体的static这个选项
  • 使用 Blender* 重新拓扑 VR 和游戏素材

    本文介绍如何将网格重新拓扑成一个整洁的低密度模型 然后 UV 解包该网格 以便将纹理贴添加至新模型 本文还将探讨如何使用免费工具 比如 Blender 及其 Bsurface 插件 重新拓扑雕塑的 3D 网格 查看详情
  • GBA编程和汉化常用软件汇总

    内容来自GBA吧中的痴狂小黑 本人只是做个汇总和搬运 1 简易图片导入导出套装 PicSimpleImEx AutoPicRock Ver1 0 这两个软件是用C 写的 想要用 先装dotNetFx40 Full x86 x64 exe 然
  • visual studio:是否统一换行符 提示弹窗是否显示

    工具 选项 环境 文档 加载时检查一致的行尾
  • Input.GetAxis _ Unity3d

    Input GetAxis 获取轴 static function GetAxis axisName string float Description描述 Returns the value of the virtual axis iden
  • 对Unity3D 静态批处理和动态批处理的理解

    Draw Call就是CPU调用图像编程接口 像OpenGL或者 DirectX 简单来说 Draw Call就是由CPU发起的一个命令 添加到一个命令缓冲区 当GPU完成了上一次的渲染任务之后 会从命令缓冲区的命令队列中再取出一个并执行
  • Unity打包WebGL的优化常用操作?

    1 贴图部分优化 如果贴图格式时2048 在不影响画面效果的情况下 改成1024或者5 12 还可以缩小包体 2 压缩和解压缩问题 WebGL打包的时候分三种压缩情况 gzip 比Brotli文件打 但打包快 http和https都支持 B
  • Unity3d中脚本无法编译问题(Monodevelop)

    使用Monodevelop打开脚本 编译时报错 具体错误忘记了 原因是 net框架引起 升级到 net框架4 5后解决
  • 【原神游戏开发日志1】缘起

    原神游戏开发日志1 缘起 版权声明 本文为 优梦创客 原创文章 您可以自由转载 但必须加入完整的版权声明 文章内容不得删减 修改 演绎 相关学习资源见文末 大家好 最近看到原神在TGA上频频获奖 作为一个14年经验的游戏开发行业的老兵 我就
  • 微信游戏如何开发

    中懿游游戏软件开发 微信游戏开发通常涉及使用微信小游戏平台进行开发 微信小游戏是一种在微信平台上运行的轻量级游戏 用户可以在微信中直接体验 无需下载安装 以下是在微信平台上开发小游戏的一般步骤 1 注册微信开发者账号 访问 微信开放平台 注
  • 【计算机图形学】PointNet文章的简单理解与运用,点云特征提取

    PointNet论文原文 PointNet Deep Learning on Point Sets for 3D Classification and Segmentation PointNet官方代码是使用tensorflow实现的 Po

随机推荐

  • InnoSetup制作Qt项目安装包

    1 安装Inno Setup InnoSetup官方网站 Inno Setup 说明 InnoSetup是免费软件 建议官网下载安装 下载位置示例如下 2 打包Qt项目 使用Qt windeployqt exe自动抽取项目Qt依赖库 备注
  • Sonar代码扫描常见规则总结

    Sonar代码扫描常见规则 最近公司项目交付 交付前集成 功能 性能 安全种种测试工作就来了 由于测试离职 被抓壮丁 兼职起测试修改工作 小公司 平时敲 ctrl c 代码 ctrl v 时 同事也不在意一些代码规范 以及一些常见的规约要求
  • 为啥海康摄像头网页无法预览

    最近在做IPC相关的业务 用谷歌 火狐都无法预览摄像头画面 即使装了插件也不行 后面发现了 要用IE打开 才能预览 转载于 https www cnblogs com 132818Creator p 10980880 html
  • python 面向对象编程(2)

    文章目录 前言 封装 多态 类属性和实例属性 定义以及访问类属性 修改类属性 实例属性 类方法 静态方法 前言 前面我们介绍了 python 类和对象以及继承 私有权限 那么今天我们将来介绍 python面向对象 剩下的两大特性封装 多态
  • 蓝桥杯Python->面向对象:类 and 方法 练习->成绩分析练习

    作者 芝士小熊饼干 系列专栏 数据结构 蓝桥杯 算法 坚持天数 3天 烤地瓜案例练习实现对面向对象的理解 抽象一个地瓜类 class SweetPotato object 实现初始化方法 初始地瓜的状态和总烧烤时间 def init sel
  • scala运行异常Could not locate executable null\bin\winutils.exe in the Hadoop binaries

    java io IOException Could not locate executable null bin winutils exe in the Hadoop binaries 出现这个问题的原因是我们在windows上模拟开发环境
  • 使用vuex实时更新右上角通知信息的红点数量

    需求如图 因为这两个不存在组件关系 所以我们使用Vuex来解决这个实时刷新 1 首先在vuex的state定义数据如下 state noticeCount 0 2 更改 Vuex 的 store 中的状态的唯一方法是提交 mutation
  • ensp usg6000v ping不通_华为USG6000V防火墙和VMWARE的联动

    快到周末了 来一篇技术类公众号文章 最近看一本很有意思的书 叫 华为防火墙技术漫谈 俗话说得好 理论结合实践才是王道 下面来简要描述一下本周做过的一个比较有意思的实验 在这个实验中使用到了ENSP模拟器 USG6000V防火墙 VMWARE
  • 【数模研赛】“华为杯”第十九届中国研究生数学建模竞赛C题分享——(四)问题二模型建立

    写在前面 第十九届数模研赛在22年10月6 10日开展 我和我的两名队友肝了5天 整出来一篇论文 因为不确定自己做的好不好 所以一直没写博客 前两天结果出来了 我们队拿了国二 在C题里排名88 1134 感觉结果还不错 以后应该也不会再有机
  • UE4 实现控制场景中所有物体透明度功能

    本文会讲解如何利用材质参数集简单的实现修改场景中所有物体透明度的功能 讲解地图为第三人称地图 1 创建材质变量集 这里面新建的变量可以在蓝图中控制 这样就能很方便的修改透明度 因为透明度是只有一个值的参数所以创建scalar参数 默认值为1
  • c语言的product,张永强:C语言中product是什么意思

    吴俊光的回答 product在C语言中不是关键字 C库中也没有这样的函数名 所以pruduct有两种可能 1是编程者自己定义的变量 2是编程者自定义的函数的名字 这里product是自定义函数的名字 功能就是返回a乘b的结果 实现一个乘法功
  • 【转载】Linux下用ls和du命令查看文件以及文件夹大小

    1 ls的用法 ls ll 列出当前目录下所有文件的大小以及所有文件大小的统计总和 显示成字节大小 ls lh 列出当前目录下所有文件的大小以及所有文件大小的统计总和 以KB MB等为单位进行显示 ls l grep wc l 或 find
  • 基于BCM53262交换芯片平台的Linux操作系统移植(四)之代码调试与驱动书写

    2018 05 09 10 49 zhoulinhua 2018 05 10 一 系统分区 name address size bootstrap 0x0 64k u boot 0x10000 640k env 0xb0000 192k d
  • 【C语言】练习题 - 菲姐游泳 - 附视频讲解

    游泳奥运冠军菲姐刻苦训练 从早上a时b分开始下水训练 直到当天的c时d分结束 请编程计算 菲姐当天一共训练多少小时多少分钟 本文引用自作者编写的下述图书 本文允许以个人学习 教学等目的引用 讲授或转载 但需要注明原作者 海洋饼干叔 叔 本文
  • 独立按键消抖与松手检测

    记录下最近独立按键消抖和松手检测 我对独立按键的处理思路是 1 获得键值 2 消抖处理 3 松手检测 4 键值解析 1 获得键值 这里把独立按键做个编号 例如有两个按键记为KEY0 KEY1 用一个变量来记录当前按键标记值 比如Cur Ke
  • npm install 编译时报“Cannot read properties of null (reading ‘pickAlgorithm‘)“

    先看报错 先说下网上大多数的解决方案 方案一 重新安装node解决 方案二 删了node models重新下 或者直接下载CNPM 淘宝镜像 进行安装 CNPM安装办法 npm install g cnpm registry https r
  • 解决STM32驱动0.96OLED不亮的问题

    问题描述 使用STM32无法驱动OLED 解决方案 1 检查硬件连接是否有误 OLED STM32 VCC 5V或3 3V SDA SDA SCL SCL GND GND 备注 最好接STM32最小系统版的3 3V 当连接STM32最小系统
  • Javaio流

    io流 关于Java的io流一般按照数据操作类型可以分为字节流与字符流 首先来说一下字节流 字节流 字节流的方法都是以stream结尾的 字节流的用途 转换图片为二进制 转换音频 视屏为二进制 字符串等也可以转为二进制 字节流常用于图片 音
  • 签到题【牛客算法周周练6E】【暴力枚举+线段树】

    题目链接 题目保证数据随机 数据随机真的是太强了 直接可以跑最坏时候是的复杂度 直接暴力建线段树 然后更新的时候更新到底 查询的时候也是查询到底 因为数据随机 所以其实被处理的次数是很少的 因为要刚好是set里有的 或者是set里没有的 这
  • Unity3D-----三维数学(向量)

    Unity3d gt 三维数学之向量 一 向量 1 什么是向量 2 向量的形式 3 向量的大小 4 向量的方向 二 向量运算 1 向量相减 2 向量相加 3 向量与标量的乘除法 4 点乘 5 叉乘 三 三角函数 1 角的度量单位 2 三角函