首页 > 解决方案 > 了解简单 Java 程序的透视投影

问题描述

所以我很难理解透视投影的精确计算——我的老师在课堂上讲课,没有教科书可供我参考。我正在用Java创建一个简单的程序,用于显示一个立方体(或实际上任何多边形对象),其中视点位于(6、8、7.5),视轴Ze指向WCS的原点,Xe轴位于Z = 7.5 平面。据说屏幕为30x30cm,观看距离为60cm。立方体如下:

Xw:-1、1、1、1、-1、1、1、-1

Yw:1、1、-1、-1、1、1、-1、-1

Zw:-1、-1、-1、-1、1、1、1、1

到目前为止,我已经能够模拟 3d 几何变换,并且正在使用 bresenham 算法来扫描转换线。然而,该项目的任务是应用我真的没有真正理解的透视投影。

有人向我描述过 [Xe Ye Ze 1] = [Xw Yw Zw 1][V] 然后 [Xc Yc Zc 1] = [Xe Ye Ze 1][N] 或者更确切地说是 [Xc Yc Zc 1] = [Xw Yw Zw 1] [[V][N]],然后用 Xs = (Xc/Zc)+Vsx + Vcx 和 Ys=(Yc/Zc)VSy+Vcy 将点映射到屏幕上。然而,我的主要问题是在给定项目条款的情况下构建转换矩阵 V。

任何帮助将不胜感激

标签: javagraphics3dperspectivecamera

解决方案


推荐阅读