OpenGL中的坐标系-2D

关于坐标系系统

在图形渲染管线中,坐标系系统扮演了一个非常重要的角色,他们并不是很复杂。当我们在学校学习几何的时候,第一个接触到的就是坐标。不过,还是让我们来先见识一下这些东西,这将使得我们更容易理解矩阵的概念。

在前一篇文章中我们讨论了关于点、向量的概念。在那里,点和向量都是由三个实数来表示的,但是那些数字到底有什么意义呢?每个一个实数表示一个他们到原点的距离。比如,我们画一条直线,并且在线的正中间标记一个点,我们说这个点就是原点。此时这个点就是用于我们去衡量距离的一个参考点。如果一个点在原点的右边,我们把它的距离表示为大于0的数,如果一个点在原点的左边,我们把它的距离用小于0的数来表示。

我们假设一条线,向原点的两边无限延伸,这样一来,两个端点的距离就是无穷大。在数学上,这并没有什么问题,但是在计算机的世界里,这就有问题了。一般而言,我们只能计算有限范围内的东西。不过,这有限的大小其实已经足够我们去创建复杂的3D世界了,所以这并不会对我们产生什么实质的影响。

4.jpg

现在我们在这条线上画上刻度,这样一来,这条线就可以用来丈量长度。于是我们可以用它来衡量一个点的坐标位置到底是多少。在计算机里,这个刻度尺我们管它叫坐标轴

如果某一个点不在坐标轴上,我们依然可以把它的位置投影到坐标轴上去。投影点与原点的距离就是我们这个点相对于原点的坐标位置了。

我们已经在不经意之间说完了在一条坐标轴上定义一个点的坐标位置了。

维度和笛卡尔坐标系

让我们把水平的那条线当成是x轴。我们可以接着绘制第二条坐标轴,这条坐标轴穿过原点垂直于x轴。我们叫这条坐标轴为y轴。从此刻开始,对于任意一个点,我们可以将他们分别投影到x和y轴上,然后计算投影点到原点的距离,并用用此来表示该点的坐标位置了。这样的位置包含两个数,两个数分别表示x轴坐标和y轴坐标。所以,我们可以说,我们用两个坐标轴,就可以定义一个二维空间。

image

比如,在一张纸上画上一堆点。这张纸占据了一个二维空间。可以看成是一个平面。我们可以为每个维度画一个坐标轴。如果我们再次使用x和y轴来衡量每个点的位置,这俩坐标轴就构成了一个坐标系统。如果这两个坐标轴是互相垂直的,那么我们管它叫:笛卡尔坐标系

我们一般用一组有着明确先后顺序的申明来表示一个点的坐标。这两个记号用逗号隔开。对于笛卡尔坐标系来说,我们一般的把x轴的坐标写在前面,y轴的坐标卸载后面。比如,我们会将一个x坐标为2.5,y坐标为2.25的点记做(2.5,2.25)。但是你也别被这两个东西吓着了,他们只是标记了这个点到原点的位置关系。

到现在为止,我们已经搞懂了,如何制作一个2D坐标系,并且在这个坐标系中定义2D的点。你还需要明确的是,这些点的2D坐标是唯一的。意思就是说,在同一个坐标系下同一个坐标所表示的点不可能出现在不同的位置上。你还需要知道的是,世界上不止有标准坐标系,坐标系的坐标轴不一定非得是水平和垂直的,你爱怎么摆放你的坐标系都行。

事实上,我们可以在一个平面上定义无数多个坐标系。为了简单,我们假设,我们在纸上画了两个笛卡尔坐标系。并且,我们在这个纸上放了一个点。此时点的坐标会因为参考坐标系的不一样而变得不一样,虽然他们的物理位置是不变的。比如说:

6.jpg

点P在A坐标系下的坐标是(-1,3),在B坐标系下的坐标却是(2,4)。然而他们表达的是同一个点。是不是想起来OpenGL中的那些坐标了?对OpenGL矩阵在干嘛是不是又增进了一丢丢理解?

所以,如果我们知道B坐标系下点P的坐标,我们需要什么样的东西来求得A坐标系下,该点的坐标呢?这个原理在我们的计算机图形学里尤为重要。我们将很快会学到,如何将一个点的坐标从一个坐标系系统映射到另一个坐标系系统。

现在,我们来考量前面的例子。我们可以通过将坐标(-1,3)加上(3,1)来达到将P点的坐标从A坐标系映射到B坐标系的效果。并且给坐标(2,4)加上(-3,-1)可以将P点的坐标从B坐标系映射到A坐标系。我们这里要注意的是,(-3,-1)和(3,1)刚好是互逆的。也就是关键字:inverse。


7.jpg

另一个比较常见的操作就是讲一个点从坐标系的一个位置移动到另一个位置,此时参考坐标系并没有改变。这种操作叫做平移操作。这也是最基本的操作。其实其他的所有线性变换也是可以应用到点上去的。给点的坐标乘上一个常数,会对点的坐标产生缩放的影响。对点进行缩放,在空间上会表现为,点会沿着连接它与原点的直线进行运动。

另外请学习引擎课程的同学务必看完我们提供的全套所有文字资源,虽然有些枯燥,但是会时时刻刻体现在引擎课程的代码中。真正开课的时候,你将不必为这些琐碎的知识点而蛋疼菊紧。

最后,同志们呐,求转发,求推广。集齐200阅读量,隔日,更多文章立马吐血加工赶制出来。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 200,612评论 5 471
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 84,345评论 2 377
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 147,625评论 0 332
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,022评论 1 272
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 62,974评论 5 360
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,227评论 1 277
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,688评论 3 392
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,358评论 0 255
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,490评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,402评论 2 317
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,446评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,126评论 3 315
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,721评论 3 303
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,802评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,013评论 1 255
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,504评论 2 346
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,080评论 2 341

推荐阅读更多精彩内容