unreal3的坐标系统和vector/rotator
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的更多相关文章
- 理解SVG坐标系统和变换: transform属性
SVG元素可以通过缩放,移动,倾斜和旋转来变换-类似HTML元素使用CSS transform来变换.然而,当涉及到坐标系时这些变换所产生的影响必然有一定差别.在这篇文章中我们讨论SVG的transf ...
- 2. svg学习笔记-svg中的坐标系统和viewbox
我是通过<SVG精髓>这本书学习的svg,说实话,这本书写的不好,或者说翻译的不好,我没有看过这本书的原版,不知道原文写的怎么样,但是翻译出来的有些句子真的很拗口.以前老师给我们API文档 ...
- SVG中的坐标系统和坐标变换
视野和世界 2D绘图中很多人会有一个误区,就是我绘图的区域是一个矩形区域.无论新建一个画布还是创建了一个容器,心里都想象里面有一个矩形区域.其实,在SVG当中,矩形区域只是视野,是我们看到的部分.实际 ...
- 理解SVG坐标系统和变换: 建立新视窗
在SVG绘制的任何一个时刻,你可以通过嵌套<svg>或者使用例如<symbol>的元素来建立新的viewport和用户坐标系.在这篇文章中,我们将看一下我们如何这样做,以及这样 ...
- pyqt5-QWidget坐标系统和大小
获取坐标和尺寸: 坐标的获取视频教程:https://v.qq.com/x/page/t085892mzh9.html x() y() 返回控件的坐标 相对于父控件的坐标(窗口框架左上角) ...
- SVG坐标系统和transformation彻底理解
翻译自https://sarasoueidan.com/blog/svg-coordinate-systems/ SVG元素不像传统的HTML elements一样受制于css box model.这 ...
- qt5-QWidget坐标系统和大小和展示区域
#include "win.h" #include <QPushButton> #include <QLabel> #include <QDebug& ...
- Silverlight & Blend动画设计系列十:Silverlight中的坐标系统(Coordinate System)与向量(Vector)运动
如果我们习惯于数学坐标系,那么对于Silverlight中的坐标系可能会有些不习惯.因为在Silverlight中的坐标系与Flash中的坐标系一样,一切都的颠倒的.在标准的数学坐标系中,X轴表示水平 ...
- coco2d-x中的坐标系问题
(1)OpenGL坐标系 Cocos2D-x以OpenGL和OpenGL ES为基础,所以自然支持OpenGL坐标系.该坐标系原点在屏幕左下角,x轴向右,y轴向上. (2)屏幕坐标系 屏幕坐标系使用的 ...
随机推荐
- SQL Server 2012将数据库备份到网络中的共享文件夹
把计算机computer1 中的数据库备份到计算机computer2(IP:192.168.0.130)中的一个共享文件夹下 在computer2中的F盘下建一个共享文件夹叫DBBackupShare ...
- OAF_文件系列5_实现OAF解析XML文件javax.xml.parsers(案例)
20150729 Created By BaoXinjian
- MYSQL C API : CLIENT_MULTI_STATEMENTS 选项
#include <iostream> #include <mysql.h> #include <string> #include <assert.h> ...
- htaccess高级应用:防盗链阻止迅雷下载以及限制访问
导读: 合理利用htaccess文件,即使没有服务器的管理权限可以解决很多问题:比如用htaccess防盗链,阻止迅雷下载,限制用户访问指定类型的文件.判断User-agent阻止迅雷下载. Rewr ...
- mssql 动态行转列。
)) ,'张三' ,'李四' ,'王五' select * from #a a b ----------- ---- 张三 李四 王五 ( 行受影响) --行转列,步骤:''+张三+],[+王五+], ...
- leetcode 169
169. Majority Element Given an array of size n, find the majority element. The majority element is t ...
- 学习java第8天
今天主要是学习了多态,多态指同一个对象在不同时刻体现出来的不同状态.多态的前提:有继承或者实现关系.有方法重写.有父类或者父接口引用指向子类对象. class Fu {} class Zi ext ...
- ajax跨域请求带cookie
调用网站:a.xxx.com jQuery(document).ready(function () { $.ajax({ type: "get", async: true, url ...
- 解决ubuntu中apache2的url大小写敏感问题。
cd /etc/apache2/mods-enabled ln -s ../mods-available/speling.load speling.load ln -s ../mods-availab ...
- C# JSON to object
/// <summary> /// json格式转换(引用System.Web.Extension类库) /// </summary> /// <param name=& ...