计算机图形学 窗口到视口坐标转换

17 Mar 2025 | 阅读 2 分钟

一旦对象描述已传输到观察参考框架,我们就会选择在观察坐标系中的窗口范围,并选择在标准化坐标系中的视口限制。

然后,将对象描述转换为标准化设备坐标

我们使用一个变换来做到这一点,该变换保持对象在标准化空间中的相对位置与它们在观察坐标系中的位置相同。

如果一个坐标位置位于观察窗口的中心

它将显示在视口的中心。

图显示了窗口到视口的映射。 窗口中位于位置 (xw, yw) 的点映射到相关视口中的位置 (xv, yv)。

Computer Graphics Window to Viewport Co-ordinate Transformation

为了保持点在视口中的相对位置与在窗口中的位置相同,我们需要

Computer Graphics Window to Viewport Co-ordinate Transformation

求解这些表达式得到视口位置 (xv, yv),我们有

xv=xvmin+(xw-xwmin)sx
yv=yvmin+(yw-ywmin)sy ...........方程 2

其中缩放因子为

Computer Graphics Window to Viewport Co-ordinate Transformation

方程 (1) 和方程 (2) 也可以通过一组变换来推导,这些变换将窗口或世界坐标系区域转换为视口或屏幕坐标系区域。 这种转换是通过以下变换序列执行的

  1. 使用固定点位置 (xwmin,ywmin) 执行缩放变换,将窗口区域缩放到视口的大小。
  2. 将缩放的窗口区域平移到视口的位置。 如果缩放因子相同 (sx=sy),则保持对象的相对比例。

从标准化坐标系,对象描述被映射到各种显示设备。

我们可以在特定的应用程序中打开任意数量的输出设备,并且可以为每个打开的输出设备执行三个窗口到视口的变换。

这种映射称为工作站变换(它通过选择标准化空间中的一个窗口区域和显示设备坐标系中的一个视口区域来完成)。

如图所示,工作站变换将一个视图划分为不同的部分,以便可以将标准化空间的不同部分显示在各种输出设备上)。

Computer Graphics Window to Viewport Co-ordinate Transformation

上述三个变换步骤的矩阵表示

Computer Graphics Window to Viewport Co-ordinate Transformation

步骤 1:将窗口平移到原点 1
          Tx=-Xwmin Ty=-Ywmin

步骤 2:缩放窗口以匹配其到视口的大小
          Sx=(Xymax-Xvmin)/(Xwmax-Xwmin)
          Sy=(Yvmax-Yvmin)/(Ywmax-Ywmin)

步骤 3:再次将视口平移到屏幕上的正确位置。
          Tx=Xvmin
          Ty=Yvmin

以上三个步骤可以用矩阵形式表示
          VT=T * S * T1

T = 将窗口平移到原点

S= 将窗口缩放到视口大小

T1=在屏幕上平移视口。

Computer Graphics Window to Viewport Co-ordinate Transformation

观察变换= T * S * T1

观察变换的优点

我们可以根据需要和选择在设备或显示系统上显示图像。

注意

  • 世界坐标系是根据应用程序选择的。
  • 屏幕坐标系是根据设计需要选择的。
  • 观察变换被选为世界坐标系和屏幕坐标系之间的桥梁。

下一主题缩放