一、坐标系

1.世界坐标系:使用左手坐标系,即z轴方向跟人眼向前看的方向一致(右手坐标系z轴方向跟人眼向前看的方向相反)

2.本地坐标系

3.屏幕坐标系:左下为原点,右上为屏幕宽高

4.界面坐标系:左上为原点,右下为屏幕宽高(unity自带的gui使用的就是这个)

5.视口坐标系:Camera组件的Viewport Rect

6.齐次坐标系:用(x,y,z,w)来区分点和向量。例如(1,2,3,0),w为0时表示向量,为1时表示点

二、向量

1.点乘:主要用于计算两向量间的夹角,或者判断角度范围。向量a(a1,a2,a3)点乘向量b(b1,b2,b3)等于|a|*|b|*cos<a,b>,或等于a1xb1+a2xb2+a3xb3

Mathf.Asin/Mathf.Acos/Mathf.Atan:返回一个以弧度为计算单位的值

Mathf.Rad2Deg:弧度转度,相当于360/(PI * 2)

可以通过Mathf.Acos(点乘结果)*Mathf.Rad2Deg得出两向量的夹角,不过更方便的方法是:Vector3.Angle

2.叉乘:得到一个垂直于两个向量的向量。|向量a叉乘向量b|等于|a|*|b|*sin<a,b>

三、矩阵

主要用于shader中的顶点片段着色器。游戏中的移动、旋转和缩放实际上是向量与矩阵运算的结果。

定义:矩阵主要用来描述两个坐标系统间的关系,通过定义一种运算而将一个坐标系中的向量转换到另一个坐标系中。

维度:指包含了多少行和多少列。一个r x c矩阵有r行、c列。

方阵:行数和列数相同的矩阵称为方阵。方阵的对角线元素就是方阵中行号和列号相同的元素,其余为非对角线元素。如果所有非对角线元素都为0,则称这种矩阵为对角矩阵。例如:

单位矩阵:是一种特殊的对角矩阵,n维单位矩阵记作I n,是n x n矩阵,对角线元素是1,其他元素是0。例如,3 x 3单位矩阵:

向量作为矩阵使用:一个n维向量能被当作1 x n矩阵或n x 1矩阵,1 x n矩阵称作行向量,n x 1矩阵称作列向量。行向量平着写,列向量竖着写,例如:

转置:考虑一个r x c矩阵M,M的转置记作M T,是一个c x r矩阵,例如:

标量和矩阵的乘法:

矩阵和矩阵的乘法:一个r x n的矩阵A乘以一个n x c的矩阵B,结果是一个r x c矩阵,记作C。对于C中的任意元素,取A的第i行和B的第j列,将行和列中的对应元素相乘,然后将结果相加(等于A的第i行和B的第j列的点积):

向量与矩阵的乘法:因为向量能被当作一行或一列的矩阵,因此同上。向量乘以一个矩阵,相当于执行了一次坐标转换:

上面表示将向量(x, y, z)转换到以p、q、r为坐标轴的坐标系中。

四、四元数

与旋转相关的数。一般情况下可以由欧拉角代替,但欧拉角会产生万向锁问题,所以旋转最好使用四元数。

[Unity基础]游戏中的数学相关推荐

  1. 游戏中的数学之3D基础

    目录 1.方向向量 2.矩阵旋转 3.欧拉角 4.Quaternion 5.互相转换 1.方向向量 1: forward, up, right为单位方向向量,世界坐标系下的 2: 单位向量 * 标量 ...

  2. 3D游戏中的数学运用

    原创文章如需转载请注明:转载自 脱莫柔Unity3D学习之旅 Unity3D引擎技术交流QQ群:[119706192]本文链接地址: 3D游戏中的数学运用 [01]3D游戏数学简介 总导:游戏中会使用 ...

  3. Unity制作游戏中的场景

    Unity制作游戏中的场景 1.2.3  场景 在Unity中,场景(Scene)就是游戏开发者制作游戏时,所使用的游戏场景.它是一个三维空间,对应的三维坐标轴分别是X轴.Y轴和Z轴本文选自Unity ...

  4. 游戏中的数学与物理学 第二版_在游戏中启蒙幼儿的数学能力和逻辑思维能力...

    同事奥北是个很有教育想法的妈妈,怀孕的时候就学习很多育儿知识,孩子出生后,她就在生活中,有意识的去培养孩子的各种能力.最近,孩子到了3岁后,她想要开始逐步培养孩子良好的逻辑思维能力.她本想着送孩子到早 ...

  5. Unity实现游戏中坦克运动控制(一)

    Unity实现游戏中坦克运动控制(一) 导入模型 控制上下左右移动 导入模型 导入坦克模型资源文件,一般包含fbx格式模型文件和tga格式的贴图文件.一般导入的模型由3dmax制作,与unity中单位 ...

  6. 游戏中的数学与物理学 第二版_在数学课堂中适度开展游戏活动,可以提高课堂教学效率...

    [摘要]小学生是以无意注意为主的,而无意注意又受兴趣的影响,更何况数学是一门比较抽象的学科.因此,在数学课中适度引入游戏是很有必要的.基于学生的心理特征,学生需要游戏,恰当的游戏不仅能够调节课堂气氛, ...

  7. 游戏中的数学之魔塔数学

    前言:这几天心血来潮找找以前玩过的老游戏,就随手下载了一个PK32.今天早上又看到光良50岁的热搜,一方面感叹时光飞逝,一方面也感觉到作者刘景雄在代码方面的强悍. 足足五页的游戏却只有7.3M的软件大 ...

  8. 游戏中的数学与物理(一)

    (看了<游戏开发的数学与物理>,感觉很不错,记下点东西. 这是本"图灵程序丛书",对于这个系列的书,我一直是蛮喜欢的,感觉书的内容.排版等,都让人看着很舒服.) 1.1 ...

  9. Unity制作游戏中改名系统(第一次改名免费、改名提示、充值获得改名次数等 )

    Unity游戏制作中UI界面名字修改 游戏名称修改 简单粗暴直接上代码 关于充值系统的概念 游戏名称修改 现在网络游戏中名字是标新立异.展示自己独一无二的个性的方式之一,名字越来越烧,操作越来越低,也 ...

最新文章

  1. putty完全使用手册--多窗口---git提交---连接数据库--自动日志显示
  2. 搜狗·疫情数据爬取(Python)
  3. android 多个dialog 交替显示,Android如何在一个AlertDialog中一个接一个地显示两个ListViews...
  4. python代码需要背吗-Python面试必须要看的15个问题
  5. IOS6学习笔记(四)
  6. apache mysql php实现最大负载的方法_如何架设高性能nginx+php+mysql搭配的服务器,解决高并发问题...
  7. C++ string源码
  8. 2015年第六届蓝桥杯C/C++ A组国赛 —— 第一题:方格填数
  9. MySQL之mysql客户端工作的批处理一些使用手法
  10. UGUI- 单列列表(VerticalLayoutGroup)
  11. TextureUnpacker 分割 Texturepacker 产生的图片 支持windows 和 mac
  12. matlab中input输入多个数_python怎么一次输入两个数
  13. xmind快捷键_小冰笔记 | 请在XMIND里写下你的MIND!
  14. 职工信息管理系统(c语言实现)
  15. FPGA入门程序(1)——流水灯
  16. Python 列表,for循环,元组的使用【修改、添加、删除、排序、切片】w
  17. Android/iOS及设计中ARGB颜色值百分比透明度换算
  18. Python 对象烤地瓜
  19. 多股票投资组合+马科维茨计算组合
  20. SQLI DUMB SERIES-8

热门文章

  1. 通过涂鸦的开发板完成可以语音控制的智能RGB彩灯开发
  2. 汇编语言程序设计——循环程序设计
  3. 华夏历史人物之「王阳明」
  4. libreoffice API 开发(四):插入表格
  5. Gitee(码云)入门使用教程
  6. Andorid/IOS 蓝牙开发总结
  7. CUDA 编程简单入门 Advance CUDA 编程基础 (C++ programming)
  8. 微信里的品牌特卖群是怎么加入卖货的?要免费的群卖货方法
  9. Airbnb上市只是时间问题
  10. Scala-2.13.1的下载和安装