ViewPort 转换矩阵的证明

ViewPort 转换矩阵是把投影窗口显示的2D图像转换为视口显示(屏幕坐标),即从投影窗口到视口缩放变换。

 

已知:

 

通常, 用户坐标中需要显示的图形(矩形区域)称为窗口。(这里是投影窗口)

在设备(屏幕)上,显示(或绘制)图形的区域(矩形区域)称为视口。(这里是屏幕)

 

投影窗口的大小为x= (-1,1) , y= (-1 ,1), z=(0, 1)

窗口到视口的缩放变换:

ViewPort 转换矩阵的证明_第1张图片

另外: Width = Vxr-Vxl,  Height = Vyt-Vyb (用户可以设置)

       Wxr-Wxl = 2, Wyt-Wyb = 2

 

Xv= Xw*( Width/2) + Vxl- (Width/2)*(-1) = Xw*( Width/2) + Vxl+(Width/2)

Yv= Yw*( Height/2) +Vyb-(Height/2)*(-1) = Yw*( Height/2) + Vyb+( Height/2)

 

(Zw-0)/(1-0) = (Zv-MinZ)/(MaxZ-MinZ)

Zv = Zw*(MaxZ-MinZ) + MinZ

 

所以转换矩阵为

ViewPort 转换矩阵的证明_第2张图片

你可能感兴趣的:(图形)