窗口与视图
- 窗口::在计算机图形学中,将在用户坐标系中需要进行观 察和处理的一个坐标区域称为窗口(Window)。即用户在 用户域中指定的任意区域W。 比如下图可以是屏幕上的一个窗口,窗口里的位置都是相对不变的。
- 视图:将窗口映射到显示设备上的坐标区域称为视图区 (Viewport),视图区可以在屏幕上随意改变位置,如下图中的京香照片。
二维图形的几何变换
平移变换
Tx,Ty为平移矢量
{x′=x+Txy′=y+Ty
比例变换
Sx,Sy为比例系数
{x′=xSxy′=ySy
旋转变换
α是
p点的原始角度位置与水平线的夹角,
θ是旋转角
{x′=xcosθ−ysinθy′=ysinθ+ycosθ
二维图形变换的矩阵表示
- 图形变换就是要变换图形的顶点坐标,同时保持图形的原拓扑关系不变。
- 二维图形可看成是一个点集,点的坐标可用行向量
(x,y)或列向量表示 ,图形点集可表示成
m∗2或
2∗m ,图形的变换
⇒点的变换。
三种变换
- 平移(Translation)变换
[x′,y′]=[x,y]+[Tx,Ty]
设
T=[Tx,Ty],则
p′=p+T
- 比例(Scale)变换
[x′,y′]=[x,y][Sx00Sy]
设S=
[x′,y′]=[x,y][Sx00Sy],则
p′=p∗S。
- 旋转(Rotate)变换
[x′,y′]=[x,y][cosθ−sinθsinθcosθ]
齐次坐标变换
- 定义:用n+1维的向量表示一个 n 维向量的方法
- 如:n维向量
(p1,p2,...,pn)表示为
(hp1,hp2,...,hpn,h),其中h称为哑坐标,当
h=1时称为 “规格化坐标” ,前
n个坐标就是普通坐标系下的
n维坐标。
- 使用原因;对于图形来说,没有实质性的差别,但是却给后面的矩阵运算提供了可行性和方便性。
原二维线性变换
将
x′=a1x+b1y+c1与y′=a2x+b2y+c2改写成:
[x′,y′]=[x,y,1]⎣⎡a1b1c1a2b2c2⎦⎤
齐次坐标法
[x′,y′]=[x,y,1]⎣⎡a1b1c1a2b2c2001⎦⎤
- 平移(Translation)变换
[x′,y′]=[x,y,1]⎣⎡10Tx01Ty001⎦⎤
- 比例(Scale)变换
Sx=Sy均匀比例变换,
Sx=Sy非均匀比例变换
[x′,y′]=[x,y,1]⎣⎡Sx000Sy0001⎦⎤
整体比例变换时,若
s>1,整体缩小;若
0<s<1, 整体放大;若
s<0,发生关于原点的对称变换。
[x′,y′]=[x,y,1]⎣⎡10001000s⎦⎤
- 旋转(Rotate)变换
顺时针:
[x′,y′]=[x,y,1]⎣⎡cosαsinα0−sinαcosα0001⎦⎤
逆时针:
[x′,y′]=[x,y,1]⎣⎡cosα−sinα0sinαcosα0001⎦⎤
- 镜像对称
对称方式 |
变换矩阵 |
新坐标点 |
对称于y轴 |
⎣⎡−100010001⎦⎤ |
x′=−xy′=y |
对称于x轴 |
⎣⎡1000−10001⎦⎤ |
x′=xy′=−y |
对称于原点 |
⎣⎡−1000−10001⎦⎤ |
x′=−xy′=−y |
对称于直线y=x |
⎣⎡010100001⎦⎤ |
x′=yy′=x |
对称于直线y=-x |
⎣⎡0−10−100001⎦⎤ |
x′=−yy′=−x |
- 错切变换:哪个错切变哪个
⎣⎡1c0b10001⎦⎤
沿x轴方向关于y错切:
x=x+cy
沿y轴方向关于x错切:
y=y+bx
复合变换
作一次以上的几何变换时,可以将复杂变换转化成变换矩阵相乘。 不可以交换律可以结合律。平移可交换律。
扫描二维码关注公众号,回复:
10971804 查看本文章
例题:任意直线的对称变换
以沿x轴平移使之过原点再旋转使直线与x轴重合为例
1.α=90∘时
- 平移: 沿
x轴平移
L使之过原点,变换矩阵为:
T1=⎣⎡10AC010001⎦⎤
- 旋转:顺时针旋转
α角使
L与
x轴重合,变换矩阵:
R1=⎣⎡cosαsinα0−sinαcosα0001⎦⎤
- 对称:沿
x轴对称,变换矩阵为:
S1=⎣⎡1000−10001⎦⎤
- 反旋转:逆时针转
α,使
L返回原位置,变换矩阵为:
R1=⎣⎡cosα−sinα0sinαcosα0001⎦⎤
- 反平移:沿
x轴平移到原
L的初始位置,变换矩阵为:
T2=⎣⎡10−AC010001⎦⎤
- 则总变换矩阵为:
CH=⎣⎡cos2αsin2α−AC(cos2α−1)sin2α−cos2αACsin2α001⎦⎤
- 用直线的
A,B,C三个参数替换总变换矩阵中的
α,有如下关系:
⎩⎪⎪⎨⎪⎪⎧sin2α=A2+B22ABcos2α=A2+B2B2−A2
新的总变换矩阵为:
CH=⎣⎢⎡A2+B2B2−A2A2+B22AB−A2+B22ACA2+B22ABA2+B2A2−B2A2+B22BC001⎦⎥⎤
2.α=90∘时
求出方程,代入仍满足总变换矩阵,即上式为通式。
小结
- 比例、旋转、错切、对称等变换
(a,b,c,d)
- 平移变换
(l,m)
- 透视变换,产生投影(
p,q,三维才有意义)
- 整体的比例变换(
s,全比例变换)它使整个图形沿
x、y轴作等比例均匀变换
相关链接
超链接
如果你还想了解其他内容:
小白谈计算机图形学(一)如何画线
小白谈计算机图形学(二)如何画圆
小白谈计算机图形学(三)二维图形裁剪
小白谈计算机图形学(四)二维三维图形变换—1
参考文献:
齐次坐标变化