目录

1.方向向量

2.矩阵旋转

3.欧拉角

4.Quaternion

5.互相转换


1.方向向量

1: forward, up, right为单位方向向量,世界坐标系下的

2: 单位向量 * 标量 = 得到的是这个标量在这个单位向量的x, y, z的分解;

3:编程实现一个物体向前方以每秒10米的速度移动;

4: 世界坐标转局部坐标,局部坐标转世界坐标;

5.平移物体 使用Translate;

6.缩放物体  localScale, lossyScale(只读),(+, -)平移 (*, /)缩放  (==, != ) 比较

7.lerp 与Slerp 参考:游戏中的数学之各种插值

8.Angle, Distance, Min, Max,

2.矩阵旋转

优点:

1: 旋转轴可以是任意向量;

缺点:       旋转其实只需要知道一个向量+一个角度,一共4个值的   信息,但矩阵法却使用了16个元素

3.欧拉角

0: 表示物体旋转, 绕哪个轴旋转多少度。

1:优点:     (1)很容易理解,形象直观;     (2)顺序不同会造成不同的结果, unity规定ZXY顺序;

2: 缺点:    (1)会造成万向节锁(Gimbal Lock)的现象

        //按z轴旋转45度 1transform.Rotate(new Vector3(0, 0, 45));//按z轴旋转45度 2transform.Rotate(new Vector3(0,0,1),45);

4.Quaternion

1:四元数是一种表示旋转的方式;

2:优点:

(1)可以避免万向节锁现象;

(2)只需要一个4维的四元数就可以执行绕任意过原点的向量的旋转,方便快捷,在某些实现下比旋转矩阵效率更高

        //1.头顶方向 worldUp (绕哪个轴进行旋转)//目标点,头顶方向transform.LookAt(new Vector3(0,5,5),new Vector3(0,1,0) );transform.LookAt(new Vector3(0, 5, 5),  Vector3.up);//返回四元素 一般使用lookat //根据自己的上方向盯着前方var rot= Quaternion.LookRotation(transform.position);transform.rotation = rot;//获得俩个四元素的角度(夹角)(进行旋转进行插值)// Quaternion.Angle();//从开始向量到目标向量的旋转var fromQ= Quaternion.FromToRotation(new Vector3(0,0,1),new Vector3(1,0,1));

(3)可以提供平滑插值;

3.缺点:     比欧拉旋转稍微复杂了一点点,因为多了一个维度;

4.详细参考:http://www.cnblogs.com/yiyezhai/p/3176725.html

   void Update(){float d = 360 * Time.deltaTime;//把每个小变换组城一个大的比变换,是用乘法(和矩阵是类似的)this.transform.rotation = transform.rotation * Quaternion.Euler(new Vector3(0, d, 0));//var center = Vector3.zero;//以圆心 绕y旋转 45transform.RotateAround(center, new Vector3(0,1,0),45); ;}

5.互相转换

1:transform存放一个代表旋转的四元数rotation;

2:四元数转换成对应的欧拉角 eulerAngles;

3: 欧拉角,转成四元数Quaternion.Euler();

4:  Rotate(欧拉角度);

        //  Euler to Quaternionvar q = Quaternion.Euler(new Vector3(0,45,0));//Euler to Quaternionvar e= transform.rotation.eulerAngles;

游戏中的数学之3D基础相关推荐

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

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

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

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

  3. [Unity基础]游戏中的数学

    一.坐标系 1.世界坐标系:使用左手坐标系,即z轴方向跟人眼向前看的方向一致(右手坐标系z轴方向跟人眼向前看的方向相反) 2.本地坐标系 3.屏幕坐标系:左下为原点,右上为屏幕宽高 4.界面坐标系:左 ...

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

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

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

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

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

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

  7. 游戏中的数学之热血传奇数学

    前言 传奇真的是个和我颇有渊源的游戏.我从记事起知道的第一个游戏,就是传奇.当时我家里还有一本传奇的攻略书.那本书是1.60神鹰版本,比最经典的1.76还要早很多.但其实在那之前我爸都玩了好久了.但是 ...

  8. 游戏中的造型师——3D美术

    3D美术在游戏制作中,相当于游戏的造型师,游戏的建筑.人物.坐骑.怪物.山水等等,都需要3D美术师来建模,构建整个游戏的世界. 对于热爱游戏的朋友来说,肯定对游戏内的美术有很多自己的想法. 那我们先来 ...

  9. 信奥中的数学:信息论基础

    详解机器学习中的熵.联合熵.条件熵.相对熵和交叉熵 详解机器学习中的熵.联合熵.条件熵.相对熵和交叉熵_Rank92的博客-CSDN博客 详解熵.最大熵.联合熵和条件熵.相对熵以及互信息之间的关系 详 ...

最新文章

  1. qt信号发送间隔短而槽耗时多_Qt信号槽问题汇总 - osc_9q1dp3jk的个人空间 - OSCHINA - 中文开源技术交流社区...
  2. 开源要“开”得安全高效:开源云计算的五大发展趋势
  3. python语音播报库-基于python GUI开发的点名小程序(语音播报)
  4. Django之中间件-CSRF
  5. 在 ns-3.25中添加 plc(电力线载波) 模块
  6. 【性能测试】Linux系统监控-CPU信息
  7. django Form表单验证
  8. visual studio emmet使用
  9. 基于python的学生信息管理系统
  10. 中科院计算机研究方向-考研导师选择的一些建议
  11. 阿里云推送ReactNative简单集成
  12. SpringBoot + Vue 结合支付宝支付(1)-- 准备工作
  13. windows 7 UEFI 启动模式安装,解决win7 64 setup会提示GPT分区不支持的问题
  14. HtmlUnit 使用范例
  15. ADSL常见网络故障及排除
  16. IC学习笔记——DRV8804
  17. 《软件方法》第四章 自测题
  18. css 径向渐变实现渐变小圈
  19. IntelliJ IDEA File Header
  20. Android集成银联支付

热门文章

  1. 80后的创业者,两年内不会有大的成功
  2. 三维空间长度温度数量_空间维度观念突破的关键:第四维度开始只在三维空间只有一个点...
  3. 这家芯片企业,从创立之初就用 Authing 管理身份
  4. windows快速命令
  5. com.alibaba.nacos.client.naming nacos心跳以及侦听一直打印问题。
  6. 偷偷爆料下各公司年终奖!(30日最新版)
  7. 骁龙相机动态设置选项卡
  8. PSINS工具箱text_SINS_GPS_153.m
  9. robot framework 的AutoItLibrary常用关键字(转)
  10. IDEA将工具栏显示在左边