Unity _坐标系_与旋转的关系

来源:互联网 发布:淘宝网打底羊毛衫 编辑:程序博客网 时间:2024/05/21 05:55

了解坐标系的特点是我们首要任务:
笛卡尔坐标系(Cartesian coordinates)(法语:les coordonnées cartésiennes)就是直角坐标系和斜坐标系的统称(特点是不同的坐标系经过一系列旋转我们都能重合)。
相交于原点的两条数轴,构成了平面放射坐标系。如两条数轴上的度量单位相等,则称此放射坐标系为笛卡尔坐标系。两条数轴互相垂直的笛卡尔坐标系,称为笛卡尔直角坐标系,否则称为笛卡尔斜角坐标系。

然而在游戏中我们你一般用的是三维坐标系(特点是不同的坐标系无论怎样旋转都不能完全重合):
这里写图片描述
这里写图片描述
左手定则(游戏世界坐标系)(决定旋向性(从Y轴转向X轴))(区别于二维坐标,三维坐标系分为左手和右手坐标(用手指模仿坐标轴即什么手))

在Unity中外部模型(FBX)在成像需要以下五个步骤:
工具(3dMax(右手定则)、Maya,)——资产调节(右手转左手(某轴负值化)(相对坐标))——应用程度(子物体会与父物体进行坐标减法最终再得到世界坐标(左手坐标))——几何(PU-GPU(视锥体剪裁(Camera右手法则(决定是什么现实在屏幕上(屏幕以左下为原点)(NGUI以左上为原点))(显卡驱动OpenGl(左下)、Dirext(右上)))))——光栅化()

以上的讲述就是为了便于理解物体旋转的因果,
这些映射到程序中是这样的,

    //正向旋转90度变为(1,0,0)    Vector3 v = new Vector3(0, 0, 1);    Quaternion q = Quaternion.identity;    q.eulerAngles = new Vector3(0,90,0);    //必须是q * v因为不支持v * q    Vector3 result = q * v;    Quaternion q = Quaternion.identity;    q.eulerAngles = new Vector3(0,90,0);    this.transform.rotation =q*this.transform.rotation ;
阅读全文
0 0