观察坐标系

来源:互联网 发布:javascript多久能学会 编辑:程序博客网 时间:2024/04/28 08:42

二维场景中要显示的部分称为剪裁窗口,因为所有在此区域外的场景都将被裁去,只有在剪裁窗口内的场景才会显示在屏幕上。而视口指的是屏幕上的显示窗口。对象在剪裁窗口内部分映射到显示窗口中指定位置的视口中。剪裁窗口决定了看到的内容,而视口指定在显示设备的什么位置进行观察。

二维世界坐标系场景描述到设备坐标系的映射称为二维观察变换。二维观察变换的一般方法是在世界坐标系中指定一个观察坐标系统,以该系统为参考通过选定方向和位置来制定矩形剪裁窗口,如图1。


图1,在世界坐标系中指定观察坐标系

其中点P0=(X0,Y0)作为二维观察坐标系的原点,使用世界坐标系的向量V作为观察坐标系Yview轴的方向,向量V称为向上向量。

观察变换的第一步是将观察坐标系原点移动到与世界坐标系原点重合,接着,旋转观察坐标系使其与世界坐标系重合,给定向上向量V可为Xview和Yview轴分别计算出单位向量v=(vx,vy)和u=(ux,uy),由此我们可以计算出由观察坐标系变换到与世界坐标系重合所需要的平移矩阵T和旋转矩阵R。即:

M=R·T

现在假设在世界坐标系中有个点P=(x,y),他在观察坐标系中的位置可由下式得出:

P‘=M·P

原创粉丝点击