坐标系统及其变换
一、窗口到视区的坐标变换
1、定义
世界坐标系
该坐标系统主要用于计算机图形场景中的所有图形对象的空间定位和定义。
屏幕坐标系统
也称设备坐标系统,它主要用于某种特殊的计算机图形显示设备的表面的点的定义。
2、窗口
3、视区
窗口映射到显示器上的区域称为视区。一段窗口和视区均为矩形。
4、变换公式
\[\frac {x_v-xv_{min}}{xv_{max}-xv_{min}}=\frac {x_w-xw_{min}}{xw_{max}-xw_{min}}
\]
\[\frac {y_v-yv_{min}}{yv_{max}-yv_{min}}=\frac {y_w-yw_{min}}{yw_{max}-yw_{min}}
\]
\[\therefore x_v=xv_{min}+(x_w-xw_{min})S_x
\]
\[y_v=yv_{min}+(y_w-yw_{min})S_y
\]
缩放因子:
\[S_x =\frac {xv_{max}-xv_{min}} {xw_{max}-xw_{min}}
\]
\[S_y =\frac {yv_{max}-yv_{min}} {yw_{max}-yw_{min}}
\]
当\(S_x=S_y\),物体保持相似性。
二、投影
投影:把空间图形投射到投影面上而得到的平面图形。
1、分类
投影分类
透视投影和平行投影
1、平行投影
投影中心和投影平面的距离为无穷大,否则为中心投影。
当投影向量垂直于观察平面时,得到正平行投影,否则得到斜平行投影。
正投影和斜投影
正平行投影用于产生物体的正视图,侧视图和俯视图。其投影反映实形,能测量物体间的距离,角度等。
正平行投影的变换方程
设任一点\((x,y,z)\)在\(xoy\)平面上的投影\(x_p=x,y_p=y\)
2、透视投影
透视投影的视线(投影线)是从视点(观察点)出发,视线是不平行的。模拟人眼观察物体的过程。透视图是通过透视中心(视点),将空间立体投影到二维平面(投影面)所产生的图形,具有较强的立体感。
不平行于投影平面的平行线汇聚的一点称为灭点,在坐标轴上的灭点叫做主灭点。主灭点数和投影平面切割坐标轴的数量相对应。按照主灭点的个数,透视投影可分为一点透视、二点透视和三点透视。
透视变换方程
坐标为\((x,y,z)\)的\(P\)点到观察平面上点\((x_p,y_p,z_p)\)的透视投影。
直线\(AB\)的参数化方程:
\[\left\{\begin{matrix}x'=x-x_u\\ y'=y-y_u\\ z'=z-(z-z_{prp})u\end{matrix}\right.u \in [0,1]
\]
当\(u=0\)时,位于\(P=(x,y,z)\)处
当\(u=1\)时,位于投影参考点\((0,0,z_{prp})\)处。
在观察平面上,
\[z’=z_{vp}
\]
\[z_{vp}=z-(z-z_{prp})u
\]
\[u=\frac {z-z_{vp}}{z-z_{prp}}
\]
将\(u\)值代入\(x’\)和\(y’\)的方程,得到透视变换方程:
\[x_p=x\cdot \frac {z_{prp}-z_{vp}}{z_{prp}-z}=x\cdot \frac {d_p}{z_{prp}-z}
\]
\[y_p=y\cdot \frac {z_{prp}-z_{vp}}{z_{prp}-z}=y\cdot \frac {d_p}{z_{prp}-z}
\]
其中,\(d_p= z_{prp}-z_{vp}\)是投影参考点到观察平面的距离。
当\(z_{vp} =0\),则
\[x_p=x\cdot \frac {z_{prp}}{z_{prp}-z}=x\cdot \frac 1 {1-\frac z {z_{prp}}}
\]
\[y_p=y\cdot \frac {z_{prp}}{z_{prp}-z}=y\cdot \frac 1 {1-\frac z {z_{prp}}}
\]
当\(z_{prp} =0\),则
\[x_p = x \cdot \frac {z_{vp}} z = x \cdot \frac 1 {\frac {z}{z_{vp}}}
\]
\[y_p = y \cdot \frac {z_{vp}} z = y \cdot \frac 1 {\frac {z}{z_{vp}}}
\]