unreal3的坐标系有点奇葩,属于【z轴向上的左手坐标系】:

1、左手食指指前方,x正向

2、大拇指指上方,z正向

3、中指指右方,y正向

若以我们人头摆正时来参考:

1、目视的是前方,x正向

2、头顶的是上方,z正向

3、右边是右方,y正向

特殊的地方在于:

通常在d3d这样的系统里,地平面上是x、z两个轴,且“向着屏幕里面”的那个轴是z轴正向,而在unreal3里地平面上是x,y轴,且y轴负向指向屏幕。

关于Vector:

1、这是3维向量,另外还有Vector2D和Vector4

2、dot、cross、*(星号)都是是操作符,分别表示点乘、叉乘、各分量乘

3、常用函数:Sqrt,VSize,VSizeSq,VSize2D,Normal,IsZero,ClampLength,VRand,MirrorVectorByNormal,ProjectOnTo

4、坐标系变换:CamRot是一个Rotator,表示一次空间变换,则 V>>CamRot,从局部空间转到全局空间; V<<CamRot,从全局空间转到局部空间

关于Rotator:

struct Rotator
{
var() config int Pitch, Yaw, Roll;
};

1、3个分量的应用顺序其实是:Yaw,Pitch,Roll,并且Roll是相对于自身的,对一纯vector而言,roll并没有意义

2、因为类型为int(而非传统的float),所以范围和精度有限制,用65536来表示2pi,其它常用值参考:

/********************
*****Reference*******
*********************
* 65536 = 360 degrees
* 32768 = 180 degrees
* 16384 = 90 degrees
* 8192 = 45 degrees
* 182 = 1 degree
*********************/

3、可以和Vector互相转换,但从Vector转回来的Rotator,roll分量为0

local rotator myRot;
local vector myVec;
...
myVec = vector(myRot);
...
...
myRot = rotator(myVec);
...

最后,在代码里定义一个Vector或Rotator时可以写成:

myVec=vect(0,0,0)

myRot=rot(0,100,100)

这是因为vect和rot是unrealscript特别定义的“literals”,就像true和false一样

												

unreal3的坐标系统和vector/rotator的更多相关文章

  1. 理解SVG坐标系统和变换: transform属性

    SVG元素可以通过缩放,移动,倾斜和旋转来变换-类似HTML元素使用CSS transform来变换.然而,当涉及到坐标系时这些变换所产生的影响必然有一定差别.在这篇文章中我们讨论SVG的transf ...

  2. 2. svg学习笔记-svg中的坐标系统和viewbox

    我是通过<SVG精髓>这本书学习的svg,说实话,这本书写的不好,或者说翻译的不好,我没有看过这本书的原版,不知道原文写的怎么样,但是翻译出来的有些句子真的很拗口.以前老师给我们API文档 ...

  3. SVG中的坐标系统和坐标变换

    视野和世界 2D绘图中很多人会有一个误区,就是我绘图的区域是一个矩形区域.无论新建一个画布还是创建了一个容器,心里都想象里面有一个矩形区域.其实,在SVG当中,矩形区域只是视野,是我们看到的部分.实际 ...

  4. 理解SVG坐标系统和变换: 建立新视窗

    在SVG绘制的任何一个时刻,你可以通过嵌套<svg>或者使用例如<symbol>的元素来建立新的viewport和用户坐标系.在这篇文章中,我们将看一下我们如何这样做,以及这样 ...

  5. pyqt5-QWidget坐标系统和大小

    获取坐标和尺寸: 坐标的获取视频教程:https://v.qq.com/x/page/t085892mzh9.html  x()    y()   返回控件的坐标 相对于父控件的坐标(窗口框架左上角) ...

  6. SVG坐标系统和transformation彻底理解

    翻译自https://sarasoueidan.com/blog/svg-coordinate-systems/ SVG元素不像传统的HTML elements一样受制于css box model.这 ...

  7. qt5-QWidget坐标系统和大小和展示区域

    #include "win.h" #include <QPushButton> #include <QLabel> #include <QDebug& ...

  8. Silverlight & Blend动画设计系列十:Silverlight中的坐标系统(Coordinate System)与向量(Vector)运动

    如果我们习惯于数学坐标系,那么对于Silverlight中的坐标系可能会有些不习惯.因为在Silverlight中的坐标系与Flash中的坐标系一样,一切都的颠倒的.在标准的数学坐标系中,X轴表示水平 ...

  9. coco2d-x中的坐标系问题

    (1)OpenGL坐标系 Cocos2D-x以OpenGL和OpenGL ES为基础,所以自然支持OpenGL坐标系.该坐标系原点在屏幕左下角,x轴向右,y轴向上. (2)屏幕坐标系 屏幕坐标系使用的 ...

随机推荐

  1. C# 形参中有默认值

    形参有默认值,表是该参数可以传,可以不传. 例如: private void button2_Click(object sender, EventArgs e) { textBox2.Text += ...

  2. html__脚本之家

    深入剖析Android的Volley库中的图片加载功能 Android图片加载缓存框架Glide Android程序开发ListView+Json+异步网络图片加载+滚动翻页的例子(图片能缓存,图片不 ...

  3. 框架--NoHttp和OkHttp哪个好用,Volley和NoHttp哪个好用?

    NoHttp和OkHttp哪个好用,Volley和NoHttp哪个好用? NoHttp 源码及Demo托管在Github欢迎大家Star: https://github.com/Y0LANDA/NoH ...

  4. Spark ML 文本的分类

    最近一直在研究Spark的分类算法,因为我们是做日志文本分类,在官网和各大网站一直没找到相应的Demo,经过1个多月的研究,终于有点成效. val sparkConf = new SparkConf( ...

  5. JAVA设计模式之享元模式

    在阎宏博士的<JAVA与模式>一书中开头是这样描述享元(Flyweight)模式的: Flyweight在拳击比赛中指最轻量级,即“蝇量级”或“雨量级”,这里选择使用“享元模式”的意译,是 ...

  6. FW: javascripts 要不要加引号

    Javascript编程风格  http://www.ruanyifeng.com/blog/2012/04/javascript_programming_style.html 作者: 阮一峰 日期: ...

  7. CentOS6.5下安装apache2.2和PHP 5.5.28

    CentOS6.5下安装apache2.2 1. 准备程序 :httpd-2.2.27.tar.gz 下载地址:http://httpd.apache.org/download.cgi#apache2 ...

  8. 移动设备页面高度不足时min-height 的尴尬处理

    移动设备页面高度不足时min-height 的尴尬处理 在做html5的页面时,经常遇到页面内容太少撑不起来整个手机屏幕的高度. 我们经常使用min-height来处理,比如min-height:56 ...

  9. [转载]: delphi中XLSReadWrite控件的使用(2)---delphi XE下安装

    一.下载 官方下载网址: http://www.axolot.com/components/download.htm 从这里可以下载到从Delphi5到DelphiXE全部支持的版本. 二.软件安装 ...

  10. 为什么C++中空类和空结构体大小为1?(转载)

    原文链接:http://www.spongeliu.com/260.html 对于结构体和空类大小是1这个问题,首先这是一个C++问题,在C语言下空结构体大小为0(当然这是编译器相关的).这里的空类和 ...