说的是坐标系。

假设两个坐标系都是X向右,Y向上。那么,右手系的Z是从屏幕垂直向外,左手系的Z就是垂直屏幕向里。

向量假设是列向量。(OpenGL系的毛病啊,列向量,右手系,泪目)

先说结论

变换矩阵为:

\[S_z=\text{Diag}(1,1,-1,1)=\begin{bmatrix}
1 & 0 & 0 & 0 \\
0 & 1 & 0 & 0 \\
0 & 0 & -1 & 0 \\
0 & 0 & 0 & 1 \\
\end{bmatrix}
\]

对于点或者向量来说:

\[v_{\text{RH}} = S_z \cdot v_{\text{LH}}
\]

对于矩阵来说:

\[A_{\text{RH}} = S_z \cdot A_{\text{LH}} \cdot S_z
\]

简单示例代码如下:

Vector3 v_LH(x_LH, y_LH, z_LH);
Matrix4 A_LH(
a11, a12, a13, a14,
a21, a22, a23, a24,
a31, a32, a33, a34,
a41, a42, a43, a44); Vector3 v_RH(x_LH, y_LH, -z_LH);
Matrix4 A_RH(
a11, a12, -a13, a14,
a21, a22, -a23, a24,
-a31, -a32, a33, -a34,
a41, a42, -a43, a44);

参考文献:Conversion of Left-Handed Coordinates to Right-Handed Coordinates

memoの左手转右手的更多相关文章

  1. 左手Mongodb右手Redis redis操作

    set key value  设置key的值 get key 取得key的值 decr key 值会减一 incr key 值会加一 decrby key value ,会让key的值减少value. ...

  2. 左手Mongodb右手Redis 通过python连接mongodb

    首先需要安装第三方包pymongo pip install pymongodb """ 通过python连接mongodb数据库 首先需要初始化数据库连接 "& ...

  3. 左手Mongodb右手Redis 第三章mongdb操作

    mongodb查询操作 1.查询操作 db.getCollection('example_data_1').find({})  查询所有的信息,相当于mysql中的select * from tabl ...

  4. 左手Mongodb右手Redis

    第二章,了解Mongodb保存数据 Mongodb对于每次插入的数据没有要求,字段可以随便变动,字段类型可以随意变动. Mongodb可以并发插入上万条文档,这是传统关系型数据库不能望其项背的. 1. ...

  5. 左手Mongodb右手Redis 第一章,进入Mongodb和Redis的世界

    ---恢复内容开始--- 1,为什么要使用非关系型数据库,关系型数据库咋滴,不能用嘛? 存在即合理,非关系型数据库的出现,那说明关系型数据库不适用了. 非关系型数据库(NOSQL)-->Not ...

  6. win7快捷键

    <1> Top 17 常规快捷键 在开始使用Win7中神奇的快捷键加速我们的电脑操作之前,先给大家介绍几个从Win2000到现在一直通用的"资源管理器"快捷键,权当作热 ...

  7. 编写可维护的CSS

    在参与规模庞大.历时漫长且参与人数众多的项目时,所有开发者遵守如下规则极为重要: 保持 CSS 便于维护 保持代码清晰易懂 保持代码的可拓展性 为了实现这一目标,我们要采用诸多方法. 本文档第一部分将 ...

  8. 浅谈c#中的delegate和event了

    一.开篇忏悔 对自己最拿手的编程语言C#,我想对你说声对不起,因为我到现在为止才明白c#中的delegate和event是怎么用的,惭愧那.好了,那就趁着阳光明媚的早晨简单来谈谈delegate和ev ...

  9. NOIP2012国王游戏

      题目描述 恰逢 H 国国庆,国王邀请 n 位大臣来玩一个有奖游戏.首先,他让每个大臣在左.右 手上面分别写下一个整数,国王自己也在左.右手上各写一个整数.然后,让这 n 位大臣排 成一排,国王站在 ...

  10. 千万别把WIFI玩坏了!关于WIFI的新鲜玩法和商业模式探讨

    使用WIFI作为无线上网接入,也许大家都比较习以为常的.但是你们知道吗,其实WIFI还有很多种玩法:基于WIFI的身份识别,WIFI感知,WIFI Direct等等.今天我们会着重介绍一种WIFI的有 ...

随机推荐

  1. Java 进阶P-8.3+P-8.4

    捕捉到的异常 捉到了做什么? 拿到异常对象之后 String getMessage(); String toSTring(); void printStackTrace(); 但是肯定时回不去了,而具 ...

  2. 行为型模式 - 解释器模式Interpreter

    学习而来,代码是自己敲的.也有些自己的理解在里边,有问题希望大家指出. 模式的定义与特点 解释器模式(Interperter Pattern),给定一个语言,定义它的文法表示,并定义一个解释器,这个解 ...

  3. 【随笔记】Tina 系统的 ADB、声卡、网卡、串口多路共存

    全志 Tina 系统的 USB Gadget 配置方法,随笔记录,实测为 R311 平台,其它平台应该通用.  一.配置内核 二.编译驱动并加载 # UAC insmod usb_f_uac1.ko ...

  4. 使用 flexible.js + rem 制作苏宁移动端首页

    一.技术选型 二.搭建相关文件夹 三.设置视口标签以及引入初始化样式文件和js文件 四.body 样式 五.rem 适配方案二 body样式修改 index.css body { min-width: ...

  5. 构建api gateway之 基于etcd实现动态配置同步

    配置中心 在之前 tcp的yaml配置 介绍了如何监听yaml文件变化然后更新配置. 当然假如我们有很多实例,那么yaml改动将是非常痛苦的事情,那么如何做到配置文件统一管理,实时更新呢? 我们可以引 ...

  6. FAQ 关于pip你应该知道的一些技巧

    pip简介 pip是安装了python之后的一个应用程序,包管理程序,有点类似于yum.npm.apt等工具 物理位置一般是python.exe所在目录下的scripts下 以我为例,我Python安 ...

  7. 重学SpringBoot. step4 Redis的应用

    Redis的应用 Redis支持的七种数据类型:字符串.散列.列表(链表).集合.有序集合.基数和地理位置,具体用Java怎么操作其实可以直接看redisTemplate的源代码. Redis引出来的 ...

  8. C++ 练习11 string的使用

    1 #include <iostream> 2 #include<string>//调用string函数库 3 using namespace std; 4 int main( ...

  9. vue跨域请求数据

    vue跨域请求数据 本篇文章基于vue-cli编写 问题描述 当出现如下关键词,证明我们正在执行跨域问题 此时证明我们违背了同源策略(即协议名.ip.端口号一致) 环境准备 首先,要想实现跨域请求数据 ...

  10. nvm管理node和npm

    安装nvm 下载地址:https://github.com/coreybutler/nvm-windows/releases 下载前卸载调node,安装时注意记住所在路径,傻瓜式安装.安装后nvm - ...