1,正常的笛卡尔右手坐标系,以屏幕右方为+X轴,屏幕上方为+Y轴,垂直屏幕向外为+Z轴,如下图,xy轴组成的平面为屏幕面

但由于THREE里的相机并不总是从屏幕正前方视角,还可以设置坐标系任意一个轴为正上方(类似于旋转坐标系),所以不同的设置会导致视角不一样
三维坐标系里的点坐标格式为(x,y,z),因此,绘制xyz轴的直线可以由以下坐标构成
X轴:(0,0,0)-(100,0,0)
Y轴:(0,0,0)-(0,100,0)
Z轴:(0,0,0)-(0,0,100)
 
2,相机所在位置position和视线方向lookAt
相机所在位置是一个点(x,y,z),即相机在坐标系种的位置
lookAt也是一个点,由相机和lookAt组成的向量就是相机的视线方向了
例如相机在A(100,100,100),lookAt在B(0,0,0),那么视线的方向就很清楚了,这个时候你在X轴上划一条(0,0,0)-(100,0,0)的直线
在屏幕上并不会显示一条垂直于屏幕的水平线,而是一条倾斜的直线,原因就是视角的方向调整了(默认视角是屏幕正前方看向屏幕,即(0,0,100)-(0,0,0))
 
3,调整相机的XYZ正方向
相机默认的坐标系Y轴向上,也可以设置成XZ轴为正方向,现在看一下正常坐标系
camera.position.x = 500;
camera.position.y = 500;
camera.position.z = 500;
 
camera.up.x = 0;
camera.up.y = 1;
camera.up.z = 0;
 
camera.lookAt({x:0,y:0,z:0});
 
 
图中白色为X轴,黄色为Y轴,红色为Z轴
 
再把X轴设为正方向,结果为
X设为正方向,必然是向上的,注意看这个时候的y和z轴
 
再将Z轴设为正方向,结果为
Z设为正方向, Z轴必然是向上的,注意此时的x和y轴
我们可以简单理解成
y.up = 1,一个人站在屏幕前面看屏幕中心,屏幕向右为+X,屏幕向上为+Y,屏幕向外为+Z
x.up = 1,一个人站在屏幕上面看向屏幕中心,双眼所在直线与屏幕上边垂直
z.up = 1,一个人站在屏幕的右侧看向屏幕中心,双眼所在直线与屏幕右边水平,有点像把屏幕当成盘子端在面前,
屏幕面向上,屏幕右侧面向眼睛,屏幕上侧面向右手方向
难受,三维想象能力不行,几个姿势摆了半天才明白过来。
 
 
 

THREE笛卡尔右手坐标系详解的更多相关文章

  1. Oracle执行计划详解

    Oracle执行计划详解 --- 作者:TTT BLOG 本文地址:http://blog.chinaunix.net/u3/107265/showart_2192657.html --- 简介:   ...

  2. Cocos2d-x 3.0坐标系详解(转载)

    Cocos2d-x 3.0坐标系详解 Cocos2d-x坐标系和OpenGL坐标系相同,都是起源于笛卡尔坐标系. 笛卡尔坐标系 笛卡尔坐标系中定义右手系原点在左下角,x向右,y向上,z向外,OpenG ...

  3. [转]Oracle执行计划详解

    Oracle执行计划详解 --- 作者:TTT BLOG 本文地址:http://blog.chinaunix.net/u3/107265/showart_2192657.html --- 简介:   ...

  4. MySql详解(三)

    MySql详解(三) 导入基础表 具体的SQL文件已经放入百度网盘,连接为:http://pan.baidu.com/s/1hseoVR2,后面的MySql内容都是按照这些基础表展开的. depart ...

  5. Mysql 操作命令 详解

    目的:1. 掌握mysql的安装,建库.建表.表的三种基本操作.查询.多表查询.数据库的备份与恢复2. MYSQL 服务器的简单维护3. mysql+apache+php的环境搭建 一.如何安装mys ...

  6. YDB基本使用详解(转)

    第七章YDB基本使用详解 一.如何与YDB对接(交互) 目前延云YDB提供如下几种方式 l命令行的方式 lWeb http接口的方式 lJDBC接口的方式 通过Java编程接入 通过可视化SQL分析统 ...

  7. SQL中的JOIN语法详解

    参考以下两篇博客: 第一个是 sql语法:inner join on, left join on, right join on详细使用方法 讲了 inner join, left join, righ ...

  8. POJ 2559 Largest Rectangle in a Histogram ——笛卡尔树

    [题目分析] 本来是单调栈的题目,用笛卡尔树可以快速的水过去. 把每一个矩阵看成一个二元组(出现的顺序,高度). 然后建造笛卡尔树. 神奇的发现,每一个节点的高度*该子树的大小,就是这一块最大的子矩阵 ...

  9. 3D数学学习笔记——笛卡尔坐标系

    本系列文章由birdlove1987编写.转载请注明出处. 文章链接: http://blog.csdn.net/zhurui_idea/article/details/24601215 1.3D数学 ...

随机推荐

  1. 在Caffe中实现模型融合

    模型融合 有的时候我们手头可能有了若干个已经训练好的模型,这些模型可能是同样的结构,也可能是不同的结构,训练模型的数据可能是同一批,也可能不同.无论是出于要通过ensemble提升性能的目的,还是要设 ...

  2. 六行python代码的爱心曲线

    前些日子在做绩效体系的时候,遇到了一件囧事,居然忘记怎样在Excel上拟合正态分布了,尽管在第二天重新拾起了Excel中那几个常见的函数和图像的做法,还是十分的惭愧.实际上,当时有效偏颇了,忽略了问题 ...

  3. 解决移动端click点击问题

    下载地址:https://github.com/ftlabs/fastclick 1,为什么移动端点击会有300ms的延迟呢? 从点击屏幕上的元素到触发元素的 click 事件,移动浏览器会有大约 3 ...

  4. 浅析Thread类run()和start()的区别

    1.先看看jdk文档 void run() If this thread was constructed using a separate Runnable run object, then that ...

  5. angular的$http.post()提交数据到Java后台接收不到参数值问题的解决方法

    本文地址:http://www.cnblogs.com/jying/p/6733408.html   转载请注明出处: 写此文的背景:在工作学习使用angular的$http.post()提交数据时, ...

  6. PHP弱类型语法的实现

    PHP弱类型语法的实现 前言 借鉴了 TIPI, 对 php 源码进行学习 欢迎大家给予意见, 互相沟通学习 弱类型语法实现方式 (弱变量容器 zval) 所有变量用同一结构表示, 既表示变量值, 也 ...

  7. CF #312 E. A Simple Task 线段树

    题目链接:http://codeforces.com/problemset/problem/558/E 给一个字符串,每次对一个区间内的子串进行升序或者降序的排列,问最后字符串什么样子. 对于字符串排 ...

  8. 探讨数据进行AES加密和解密以及.NET Core对加密和解密为我们提供了什么?

    前言 对于数据加密和解密每次我都是从网上拷贝一份,无需有太多了解,由于在.net core中对加密和解密目前全部是统一了接口,只是做具体的实现,由于遇到过问题,所以将打算基本了解下其原理,知其然足矣, ...

  9. 【原创】Android 5.0 BLE低功耗蓝牙从设备应用

    如果各位觉得有用,转载+个出处. 现如今安卓的低功耗蓝牙应用十分普遍了,智能手环.手表遍地都是,基本都是利用BLE通信来交互数据.BLE基本在安卓.IOS两大终端设备上都有很好支持,所以有很好发展前景 ...

  10. 关于phpMyAdmin表数据不能编辑更改的问题

    今天在使用phpMyAdmin更改表中的数据时, 发现表的前面没有编辑.复制.删除这些内容, 于是我很奇怪,上网查了查,终于找到了一个解决的办法, 原来是我的这个表没有主键,于是我点击表 的 结构 , ...