计算机图形学数学基础

1.1  3D坐标系

3D空间通常用3个坐标轴 X, Y,Z来表示。通常有左手坐标系和右手坐标系。可以使用大拇指食指和中指成直角进行构造,如下图所示,大拇指为Y轴,Z轴为食指,中指为X轴

右手坐标系如下,为了x轴方向朝右,绕y轴旋转180度,如右图所示。

在OpenGL中的坐标系一般是右手坐标系,而Direct3D中一般是左手坐标系。

1.2 点

  3D空间中的点可以通过笛卡尔坐标表示,如(2, 8, −3)。不过,使用齐次坐标—— 一种在19世纪初首次描述的表示法来表示点会更有用。在每个点的齐次坐标有4个值。前3个值表示X、Y和Z,第四个值W总是非零值,通常为1。

w表示缩放因子,齐次坐标转换笛卡尔坐标为(\frac{x}{w},\frac{y}{w},\frac{z}{w}),当w为0时,表示无穷远的点。

在欧式几何空间,同一平面的两条平行线不能相交,这是我们都熟悉的一种场景。

然而,在透视空间里面,两条平行线可以相交,例如:火车轨道随着我们的视线越来越窄,最后两条平行线在无穷远处交于一点。

 

  以上方程式表示2条直线,如你所知这方程式没有解,因为C!=D,如果C==D,则这2条线则是重合的。让我们把A,B替换成A/w和B/w,如下图,这样方程有解,(x, y, 0) 当(C - D)w = 0, ∴ w = 0,所以这2条平行线相交于无穷远处。

在三维空间中,基 oabc 是由三个向量 a,b,c 组成的集合,通常加上原点 o。这些向量构成了一个基底,用来描述整个三维空间中的点。

具体来说,向量 a,b,c 是线性无关的,这意味着它们不能通过其他向量的线性组合来表示为零向量。这些向量通常被称为基向量,它们可以用来表示三维空间中的任何其他向量,因为三维空间中的每个向量都可以表示为基向量的线性组合。

例如,对于给定的向量 v,你可以找到一组实数 v1​,v2​,v3​,使得:v=v1​a+v2​b+v3​c,

对于给定的点a, 从原点O到a的oa向量,存在一组实数 e1,e2,e3,使得:a-o=e1a+e2b+e3c,

a =e1a+e2b+e3c+o。

将表达式写成矩阵的形式[v1,v2,v3,O]X(v1,v2,v3,0)。所以可以看出当第四个分量w为0时表示的是向量。当w为1时表示的是点。

1.3矩阵

  在3D图形学中,点与矩阵相乘通常从右向左,得到点,如:

1.3.1平移矩阵

  在图形学中矩阵通常进行物体间的变换,矩阵可以和点通过计算,将一个点移动从一个位置到另外一个位置。平移矩阵他包含一个单位矩阵,同时A_{03},A_{13},A_{23},代表点在X,Y, Z在方向的移动量。可以看见当w=0时,为向量时,平移矩阵对向量没有作用。

 1.3.2 缩放矩阵

    缩放矩阵用于改变物体的大小或者将点向原点相反方向移动,在opengl中物体是一组或多组点的集合,缩放物体就是相当于缩放点的集合。缩放矩阵变换由单位矩阵和位于A_{00}A_{11}A_{22}的X、Y、Z缩放因子组成。下图中展示了缩放矩阵的形式和当它与齐次坐标点相乘的效果:所得的结果是经过缩放值修改后的新点。

1.33 旋转矩阵 

在16世纪中叶,数学家莱昂哈德· 欧拉表明,围绕任何轴的旋转都可以表示为绕X、Y、Z轴旋转的组合 。围绕这3个轴的旋转角度被称为欧拉角。这个被称为欧拉定理的发现,对我们很有用,因为对于每个坐标轴的旋转可以用矩阵变换来表示。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值