Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/306.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
理解简单Java程序的透视投影_Java_Graphics_3d_Perspectivecamera - Fatal编程技术网

理解简单Java程序的透视投影

理解简单Java程序的透视投影,java,graphics,3d,perspectivecamera,Java,Graphics,3d,Perspectivecamera,所以我很难理解透视投影的精确计算——我的老师在课堂上讲课,而且没有课本供我参考。 我正在用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 到目前为止,我已经能够模拟三维几何变换,并使用br

所以我很难理解透视投影的精确计算——我的老师在课堂上讲课,而且没有课本供我参考。 我正在用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

到目前为止,我已经能够模拟三维几何变换,并使用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


任何帮助都将不胜感激

我对观察轴指向原点和右轴平行于x/y平面感到有点困惑。为什么它们不是正交的