1000字范文,内容丰富有趣,学习的好帮手!
1000字范文 > python笛卡尔坐标系_THREE笛卡尔右手坐标系详解

python笛卡尔坐标系_THREE笛卡尔右手坐标系详解

时间:2020-07-16 04:26:49

相关推荐

python笛卡尔坐标系_THREE笛卡尔右手坐标系详解

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,一个人站在屏幕的右侧看向屏幕中心,双眼所在直线与屏幕右边水平,有点像把屏幕当成盘子端在面前,

屏幕面向上,屏幕右侧面向眼睛,屏幕上侧面向右手方向

难受,三维想象能力不行,几个姿势摆了半天才明白过来。

Oracle执行计划详解

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

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

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

[转]Oracle执行计划详解

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

MySql详解(三)

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

Mysql 操作命令 详解

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

YDB基本使用详解(转)

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

SQL中的JOIN语法详解

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

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

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

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

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

随机推荐

命令格式 kill -3 pid

命令格式 kill -3 pid 作用 打印进程号为pid的进程中,每个线程的执行日志 到 nohup文件 中,如果nohup的输出做了重定向,那么输出到重定向以后的文件中. 命令格式 top -Hp ...

Java基于Servlet 验证吗

req.setCharacterEncoding("utf-8"); resp.setContentType("text/html;charset=utf- ...

ionic 安装教程

-10-08:国庆回来发现有新版本了,特意更新结果命令失效了,然后重新装吧,结果也失败多次 大概6-7次左右,然后系统是win10,可以启用管理员命令窗口进行安装,第二次成功了! 1.准备 ...

Cppcheck软件使用

一款开源源码检测工具.简单易用. 官网网址:/ 软件可直接官网下载. [plain]view plaincopy Features Ou ...

quartz学习笔记(一)简单入门

前言 quartz是Java编写的一款开源的任务调度开发框架,在项目开发中很多场景都可以用到,比如订单超期自动收货. 所谓程序源于生活,生活中也有很多场景可以用quartz来模拟,比如工作日早上七点起 ...

leetcode算法: Find All Duplicates in an Array

Given an array of integers, 1 ≤ a[i] ≤ n (n = size of array), some elements appear twice and others ...

TensorFlow 中文资源全集,官方网站,安装教程,入门教程,实战项目,学习路径。

Awesome-TensorFlow-Chinese TensorFlow 中文资源全集,学习路径推荐: 官方网站,初步了解. 安装教程,安装之后跑起来. 入门教程,简单的模型学习和运行. 实战项目, ...

import tensorflow 报错: tf.estimator package not installed.

import tensorflow 报错: tf.estimator package not installed. 解决方案1: 安装 pip install tensorflow-estimator ...

RecyclerView的简单使用

使用RecyclerView 要做下面这些操作, 1.在build.gradle添加 RecyclerView的依赖,因为RecyclerView不是内置在android系统中的,请注意版本要一致 ...

Runtime Services

Python Runtime Services — Python 3.7.2 documentation /3/library/python.html

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。