计算机图形学——第八章

二维观察

一、裁剪窗口

裁剪窗口:所有在此区域以外的场景都要裁去。

从二维世界坐标到设备坐标系的映射称为二维观察变换,有时也称窗口到视口的变换或窗口变换。

通过建立二维观察坐标参考系来裁剪指定的窗口。

二维观察变换的流水线:

  --MC-->使用建模坐标变换构造世界坐标系场景 --WC--> 将世界坐标转换为观察坐标--VC-->将观察坐标转换为规范化设备坐标--NC-->将规范化设备坐标映射到设备坐标--DC-->

观察坐标系裁剪窗口

选择世界坐标系P_{0} = (x_{0},y_{0})作为观察坐标的原点,使用世界坐标系的向量V作为观察坐标系y轴的方向,向量V称为二维观察向上向量,通过第二维平移跟旋转,将两个坐标系重合。

裁剪窗口到规范化视口的映射:

将窗口点(xw,yw)视口点(xv,yv)保持相同位置满足

\frac{xv-xv_{min}}{xv_{max}-xv_{min}}  = \frac{xw-xw_{min}}{xw_{max}-xw_{min}}

\frac{yv-yv_{min}}{yv_{max}-yv_{min}}  = \frac{yw-yw_{min}}{yw_{max}-yw_{min}}

可得

xv = s_{x}xw+t_{x}   yv = s_{y}yw+ t_{y}

s_{x} = \frac{xv_{max}-xv_{min}}{xw_{max}-xw_{min}}   s_{y} = \frac{yv_{max}-yv_{min}}{yw_{max}-yw_{min}}

t_{x} = \frac{xw_{max}xv_{min}-xw_{min}xv_{max}}{xw_{max}-xw_{min}}   t_{y} = \frac{yw_{max}yv_{min}-yw_{min}yv_{max}}{yw_{max}-yw_{min}}


M_{window,normviewp}= T\cdot S = \begin{bmatrix}s_{x} & 0& t_{x}\\0 & s_{y} & t_{y}\\0 & 0 & 1 \end{bmatrix}

二、裁剪算法(后面有时间补上)

Cohen-Sutherland线段裁剪算法:

梁友栋-Barsky线段裁剪算法:

Nicholl-Lee-Nicholl线段裁剪算法:

Sutherland-Hodgman多边形裁剪:

Weiler-Atherton多边形裁剪:

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。