3D数学学习笔记——笛卡尔坐标系
本系列文章由birdlove1987编写。转载请注明出处。
文章链接: http://blog.csdn.net/zhurui_idea/article/details/24601215
1.3D数学是一门和计算机几何相关的学科。计算几何则是研究用数值方法解决几何问题的学科。
3D数学解说怎样在3D空间中准确度量位置、距离和角度。
2.在3D数学里使用最广泛的度量体系是笛卡尔坐标系统。(笛卡尔数学由法国数学家Rene Descartes发明,并以他的名字命名)
3.关于数的类型:实数包括有理数和无理数(假设用小数表示小数后面有无穷多位)。
实数数学被非常多人觉得是数学中最重要的领域之中的一个,由于它是project学的基础,人类使用实数创建了文明。
最酷的事情是有理数可数。而实数不可数。研究自然数和整数的领域称作离散数学,研究实数的领域称作连续数学。
(很多物理学家们都觉得:实数仅仅是一种错觉,由于宇宙是离散和有限的。)
4.c++提供的多种数据类型来描写叙述3D虚拟世界。包含short,int,float和double。
short是16位整数。能够代表65536个不同的数值,尽管这个数非常大,可是量度现实世界还是远远不够的。
int是32位整数。能够代表4,294,967,296个不同的数值。
float是32位有理数,能够代表4,294,967,296个数值。
double是64位有理数,与float类似。
5.为虚拟世界选择度量单位的关键是选择离散的精度。
有一种错误的观点觉得short、int是离散的,而float、double是连续的,而实践上这些数据类型都是离散的。
计算机图形学第一准则:近似原则 假设它看上去是对的它就是对的。(感觉应该叫计算机实现第一准则—_—!)
6.2D笛卡尔坐标系有下面两点定义:
A. 每一个2D笛卡尔坐标系都有一个特殊的点。称作原点(Origin(0,0)),它是坐标系的中心。
B. 每一个2D笛卡尔坐标系都有两条过原点的直线向两边无限延伸,称做轴(axis)。
两个轴相互垂直。
笛卡尔坐标系特点:
A. 2D坐标空间是无限伸展的。
B. 坐标系中的直线没有宽度,坐标系中每一个点都是坐标系的一部分。
7.2D笛卡尔坐标系:水平的轴称作X轴。向右为X轴的正方向,垂直的轴称作Y轴,向上为Y轴的正方向。这是表示2D坐标系的惯使用方法。
(注意:名词“水平”和“垂直”实际上并不准确)。
8.例如以下图,不管我们为X轴和Y轴选择什么方向,总能通过旋转使X轴向右为正。Y轴向上为正。全部从某种意义上讲,全部的2D坐标系都是“等价”的。
ps:这样的说法对3D坐标系是不成立的。
9.关于2D笛卡尔坐标系的其它一些概念:
A. 在2D平面中,两个数(x,y)就能够定位一个点,且2D坐标的标准表示法就是(x。y)。
B. (x。y)每个分量都是到对应的轴的有符号距离,x分量表示该点到Y轴的“有符号距离”。相同Y分量表示该点到X轴的“有符号距离”。
ps:有符号距离是指在某个方向上距离为正,而在相反的方向上距离为负。
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvemh1cnVpX2lkZWE=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center">
10.3D坐标系:我们须要用3个轴来表示三维坐标系,前两个轴称作X轴和Y轴,这类似于2D平面,但并不等同于2D的轴,第3个轴称作Z轴。(3各轴互相垂直)。
11.在3D中定位一个点须要3个数:x,y和z。分别代表该点到yz,xz和xy平面的有符号距离。
12.对于随意的3D坐标系。通过旋转我们仅仅能使用个轴和目标同样,第三个轴总是和目标方向相反。
3D坐标系之间不一定是等价的。
实际上,存在两种全然不同的3D坐标系:左手坐标系和右手坐标系。假设同属于左手坐标系或右手坐标系。则能够通过旋转来重合,否则不能够。
左手坐标系和右手坐标系没有好坏之分,在不同的研究领域和不同的背景下,人们会选择不同的坐标系。假设运用某种技术结果不正确。那么非常可能是弄错了坐标系类型。
ps:以后笔记里使用的都是左手坐标系。也就是左图中的坐标系。(本人刚好是左撇子,嘿嘿—_—!)。
參考文献:(1)《3D Math Primer for Graphics and Game Development》
(2)百度百科
版权声明:本文博客原创文章,博客,未经同意,不得转载。
3D数学学习笔记——笛卡尔坐标系的更多相关文章
- 3D数学--学习笔记(五岁以下儿童):总结一些概念(避免遗忘!)
下面是一些概念只是一个简单的解释,这里是它的一个简单的了解! 当人们谈论,我能理解有关. 1.正交投影: 投影.这意味着降维操作. 全部的点都被拉平至垂直的轴(2D)或平面(3D)上.这样的类型的投影 ...
- 在GDI+中如何实现以左下角为原点的笛卡尔坐标系
今天写了一个求点集合的凸包的一个算法,虽然结果求解出来了,但是想将过程用GDI+绘制出来,就需要将点绘制出来,然而c#GDI+中绘图的坐标与我们常用数学中笛卡尔坐标系是不一样的,所以就要转换GDI+中 ...
- 3D数学读书笔记——多坐标系和向量基础
本系列文章由birdlove1987编写,转载请注明出处. 文章链接: http://blog.csdn.net/zhurui_idea/article/details/24662453 第一个知识点 ...
- 3D数学读书笔记——矩阵基础
本系列文章由birdlove1987编写,转载请注明出处. 文章链接:http://blog.csdn.net/zhurui_idea/article/details/24975031 矩 ...
- 【Unity 3D】学习笔记三十五:游戏实例——摄像机切换镜头
摄像机切换镜头 在游戏中常常会切换摄像机来观察某一个游戏对象,能够说.在3D游戏开发中,摄像头的切换是不可或缺的. 这次我们学习总结下摄像机怎么切换镜头. 代码: private var Camera ...
- 3D数学读书笔记——矩阵基础番外篇之线性变换
本系列文章由birdlove1987编写.转载请注明出处. 文章链接:http://blog.csdn.net/zhurui_idea/article/details/25102425 前面有一篇文章 ...
- 【Unity 3D】学习笔记29:游戏的例子——简单的小制作地图
无论学习.只看不练是坏科学. 因此,要总结回想这怎么生产MMROPG小地图的游戏.于MMROPG游戏类,在游戏世界中行走时导致各地,通常在屏幕的右上角,将有一个区域,以显示当前的游戏场景微缩.在游戏世 ...
- 3D数学读书笔记——四元数
本系列文章由birdlove1987编写,转载请注明出处. 文章链接: http://blog.csdn.net/zhurui_idea/article/details/25400659 什么是四元数 ...
- 3D数学读书笔记——向量运算及在c++上的实现
本系列文章由birdlove1987编写.转载请注明出处. 文章链接: http://blog.csdn.net/zhurui_idea/article/details/24782661 ...
随机推荐
- 【程序猿助手】Emacs,最强的编辑器,之间的不
wx_fmt=png" alt="" style="max-width:100%; height:auto!important"> 内容简单 ...
- Oracle GoldenGate (以下简称ogg)在异种移植os同一种db之间的数据同步。
Oracle GoldenGate (以下简称ogg)在异种移植os同一种db之间的数据同步. ogg要实现的功能: 同步可以细化到单个表,满足特定的where条件rows同步,称号column同步. ...
- 3Dmax+blend+WPF综合运用
原文:3Dmax+blend+WPF综合运用 赛后总结 本人小菜,WPF刚入门,只是写一下最近的项目心得.欢迎各位前辈们前来拍砖指正,感激不敬!先申明,小弟我入门仓促,很多东西也是一知半解,所以很多问 ...
- effective c++ prefer const,enum, inline to #defines
学习心得 对于纯常量,最好以const对象或者enums替换#define #define FIRST 3 //not good enum { first=1, second=2 } ; int nu ...
- Mono for Andriod学习与实践(1)— 初体验
对于Andriod的开发者来说,相信Java语言是第一选择,可是对于.Net开发者来说,要想利用C#在Andriod平台上开发,Mono提供了相应的开发平台来实现,Mono for Andriod就是 ...
- SRM 628 D1L3:DoraemonPuzzleGame,math,后市展望,dp
称号:c=problem_statement&pm=13283&rd=16009">http://community.topcoder.com/stat?c=probl ...
- JAVA编程思想(2) - 操作符(一)
"在最底层,Java中的数据是通过操作符来操作的." 1. 使用Java操作符 -操作符接受一个或者多个參数,并生成一个新值,參数的形式与普通的方法调用不用,但效果是同样的.加号和 ...
- Python 保存爬行动物捕捉网页
选址的桌面壁纸网站汽车主题: 下面的两个print打开调试期间 #print tag #print attrs #!/usr/bin/env python import re import urlli ...
- 简单的虚拟摇杆控制移动(NGUI)
一.用NGUI创建虚拟摇杆贴图 先创建一个sprite作为背景叫做JoyStick 并添加一个BoxCollider,再创建一个sprite child作为虚拟摇杆中间的按钮,叫做button 二.通 ...
- cocos2d-x v3.2 FlappyBird 各个类对象详细代码分析(6)
今天我们要讲三个类,这三个类应该算比較简单的 HelpLayer类 NumberLayer类 GetLocalScore类 HelpLayer类,主要放了两个图形精灵上去,一个是游戏的名字,一个是提示 ...