零基础网络工程师培训/正规seo排名多少钱
一、几何变换的概念
几何变换又称建模变换,指只改变组成形体的几何元素的几何信息(大小、形状、相对位置),而不改变图形拓扑信息的变换。
图形变换模式:
(1)坐标系不动,图形变动(以下内容采用这种模式)
(2)图形不动,坐标系变动
图形学中这些基本变换通过矩阵实现。
二、基本几何变换:相对于坐标原点和坐标轴的平移、旋转、缩放(变比)、投影。
将参与变换的点写成向量的形式,如列向量:
1.二维平移变换
将点(x,y)平移到点(x’,y’)
2.二维旋转变换
需要指定旋转的基准点(绕那个点旋转)和旋转的角度(逆时针为正,顺势针为负)。
写成矩阵的形式:
3.二维缩放变换(讨论相对于坐标原点的简单缩放)
缩放变换又称比例变换。
假设将x方向上的坐标相对于坐标原点放大Sx倍,将y方向上的坐标相对于坐标原点放大Sy倍,则有:
注意:缩放变换不仅改变图形的大小,还改变图形与坐标原点的距离,所以在进行缩放变换时要考虑缩放后的图形是否能在窗体内正常显示。
缩放的几种情况:
可以观察到,平移使用的矩阵加法,而旋转、缩放使用的是矩阵乘法,为了将三种变换使用的矩阵运算统一起来,引入齐次坐标。
三、齐次坐标
基本思想:将n维空间的几何问题转换到n+1维空间去解决
定义:用一个n+1个分量去表示一个有n个分量的向量的方法
笛卡尔坐标系二维点:p(x,y)对应的齐次坐标点为p(hx,hy,h),其中h是任一不为0的比例系数,当h=1时,称为规格化齐次坐标。
可以看出(1)笛卡尔坐标与齐次坐标的关系是“一对多”。
(2)给定一个点的齐次坐标表示(x,y,h),该店的二维笛卡尔直角坐标为(x/h,y/h)。
引入齐次坐标后点平移的矩阵变换为:
上图将点p(x,y)平移到点p’(x+tx1,y+ty1)。
逆时针旋转:
缩放:
四、二维反射(对称)变换
物体的反射一般是相对于一个对称轴生成的。
例如,相对于x轴的对称:
点p(x,y,1)相对于直线y=x对称后的坐标为(y,x,1),点p(x,y,1)相对于直线y=-x对称后的坐标为(-y,-x,1)。
如果给定的直线不是y=x或y=-x,而是平面中任意的一条直线,则一个点关于该直线做对称变换使用二维复合变换。
五、复合变换
复合变换由若干个基本变换组合而得的变换,将每一个基本变换左乘在变换点的矩阵坐标上。
1.复合平移
平移两次的坐标变换:
2.复合旋转
先后绕原点旋转逆时针两次不同的角度
3.复合缩放
4.相对于任意点的缩放变换
注意:矩阵对应变换的位置是从右到左。
矩阵满足结合律不满足交换律,所有矩阵的位置不能随意变换。
5.相对于任意直线的对称变换
步骤:
五步对应的矩阵:
6.二维变换的应用:坐标系间的变换
问题解决:
可以发现坐标系间的变换与点在坐标系间的变换正好相反。
二、三维几何变换
三维空间的齐次坐标
原理相同,基本变换使用一个四维矩阵,复合变换使用多个四维矩阵相乘,且按变换顺序从右到左放置。
例如:相对于任意点的缩放:
1.三维空间的旋转
指定旋转轴(绕哪个轴旋转)和旋转角度。
例如绕z轴旋转,点p(x,y,z)绕z轴逆时针旋转一个角度,点的z坐标值不变,x,y值与在二维平面的旋转相同:
矩阵形式:
同理,绕x轴旋转:
绕任意一条直线旋转(方法是将该直线进行变换使其与坐标轴重合在进行变换):
这里需要注意两个问题:
(1)在变换旋转轴时要注意旋转轴的正方向,即若该旋转轴由p1,p2两点确定,且p1指向p2的方向为旋转轴正方向,则旋转轴变换后其正方向要与坐标轴的正方向重合;
(2)当将旋转轴移至过坐标原点时,如果此时该直线没有位于任意坐标平面(如x0y,x0z,y0z)内,则不能只通过一次旋转变换与坐标轴重合,而需要经过两次。
步骤的矩阵实现:
2.三维空间的对称
三维空间下的对称是关于某一个平面的对称,常用对称平面是坐标平面,矩阵表示为:
三、OpenGL提供了相关函数来实现平移,旋转和缩放变换。