#Unity坐标系,向量,四元数(一)
来源:互联网 发布:linux用户权限文件 编辑:程序博客网 时间:2024/06/10 03:34
3D坐标系
Unity使用笛卡尔坐标系来描述物体的坐标信息,一般分为左手坐标系和右手坐标系。
左手坐标系:Y轴上,X轴右方,Z轴向前。
右手坐标系:Y,X轴相同,Z轴相反。
Unity使用左手坐标系,3Dmaxs使用右手坐标系。
全局坐标系:世界坐标系
又称世界坐标系。在unity中创建的物体都是以全局坐标系(0,0,0)为基准点,来确定各自的位置。
局部坐标系
父子关系中,子物体会把父物体坐标系作为基准点(0,0,0)来调整自己的位置
父物体影响子物体的旋转缩放和移动
转换方法:
Transform组件的
Transform.TransformPoint方法可以将坐标点从局部坐标系转换为全局坐标系。
Transform.InverseTransformPoint可以将坐标点从全局坐标系转为局部坐标系。
Transform.TransformDirection和Trasfrom.InverseTransformDirection用于对向量在物体坐标系和世界坐标系之间进行转换
例1:
Public class CoordinatieLocal:MonoBehaviour{//让物体沿着Z轴向前移动 Void Update(){ transform.translate(vector3.forward*time.deltaTime) }}
例2:
public class Coord : MonoBehaviour { private Vector3 objvector3; void Update () { //将局部坐标系转为全局坐标系,物体将按全局坐标系forward移动.同理可反转 //objvector3 = transform.InverseTransformDirection(Vector3.forward); //transform.Translate(objvector3*Time.deltaTime); //移向,局部坐标系的forward ; Space.Self. transform.Translate(Vector3.forward*Time.deltaTime,Space.Self); //移向,世界坐标系的forward ; Space.World. transform.Translate(Vector3.forward * Time.deltaTime, Space.World); }}
相机坐标系:
根据观察位置和方向建立的坐标系。使用此坐标系可以方便地判断物体是否在相机的前方以及物体之间的先后遮挡顺序等。
关于相机坐标系和屏幕坐标系会在下一篇博客中着重介绍。
向量:
又称(矢量).他描述具有大小和方向两个属性的物理量。例如:速度,加速度,观察方向,刚体受到的力等。
以下图片演示在三维空间中的一个向量a(?,?,?);
向量的运算主要有五个
加法,减法,数乘,点乘,叉乘。
加减法:
向量的加减法为各自的分量分别相加或相减。在物理上可以用来计算两个力的合力,或者几个速度分量的叠加。下图演示了向量加法运算,减法一样。
数乘:
向量与一个标量相乘称为数乘。数乘可以对向量的长度进行缩放,如果标量大于0,那么向量方向不变,如果标量小于0,那么方向相反。
例3:
以最常用的移动方法来讲:
点乘:
两个向量点乘得到一个标量,数值等于两个向量长度相乘后再乘以二者夹角的余弦。
设二维空间内有两个向量U和V,它们的夹角为θ([0, π]),则内积定义为以下实数:
向量点乘的公式:U·V = |U||V|cosθ
根据该公式可以退到下面三条结论:
1. U·V > 0,表示向量U和V之间的夹角小于90度(锐角)
2. U·V < 0,表示向量U和V之间的夹角大于90度(钝角)
3. U·V = 0,表示向量U和V之间的夹角为90度(相互垂直)
4. U·V = 1,表示向量U和V的方向相同
5. U·V = -1,表示向量U和V的方向相反
例4:
float cDot = Vector3.Dot(B.transform.position,A.transform.position);Debug.Log(cDot);
设A的向量值为 (0,0,1);
那么向量点乘结果
c <1 时,B在A的后面
c > 1时,B在A的前面
今天就更新到这里,下一篇继续。
码子不易,转载请注明出处:http://blog.csdn.net/huzi4152
- #Unity坐标系,向量,四元数(一)
- Unity关于图形学的基础知识-向量(一)
- OpenGL学习笔记:三维数学基础(一)坐标系、向量、矩阵
- 3D数学--学习笔记(一):笛卡尔坐标系、向量、矩阵初识
- 3D数学--学习笔记(一):笛卡尔坐标系、向量、矩阵初识
- 初学unity(初识坐标系)
- unity 坐标系
- Unity坐标系
- Unity 四元数和向量相乘
- Unity 四元数和向量相乘
- Unity 中的坐标系和向量的点乘与叉乘
- 3D数学 学习笔记(1) 向量、坐标系
- [Unity游戏开发]向量在游戏开发中的应用(一)
- 局部坐标系、世界坐标系、矩阵、向量
- 详解坐标系及坐标变换--大地坐标系(一)
- unity入门教程之使用四元数旋转向量
- Unity四种坐标系
- Unity 坐标系笔记
- vim命令
- Leetcode 8 String to Integer (atoi)
- 解读JavaScript之this
- Linux内核:关于中断你需要知道的【转】
- Windows服务编程之服务程序
- #Unity坐标系,向量,四元数(一)
- mysql:cannnot create file navicatdesignquery.sql.bak 系统找不到指定路径
- android 图片转换
- 路由器端口映射
- [Hdu 3046]Pleasant sheep and big big wolf
- android OkHttp3.0介绍
- 重定向与转发的区别
- php require 和 include 的区别
- 基于native.js和html5的APP开发之消息推送