在Processing中,利用modelX、modelY、modelZ与screenX、screenY、screenZ函数进行三维坐标与屏幕坐标的相互转换。
1、 首先构建所示的场景,利用变换旋转调整对象的世界矩阵,再创建物体,最终形成围绕中心旋转的一圈正方形布局。
2、 调用modelX(x,y,z)可获取当前对象在世界坐标系中,点(x,y,z)对应的全局位置。
3、 modelY与modelZ函数的处理方式相同。
4、 代码实现物体抵达指定空间位置后,自动呈现该点预设的颜色效果。
5、 通过screenX(x,y,z)和screenY(x,y,z)将三维坐标转换为屏幕上的二维位置,结合ellipse函数进行绘制,利用坐标变换实现立体感的阵列图形效果,呈现出空间分布的视觉层次。
6、 screenZ(x,y,z)表示屏幕坐标系中的z轴分量,这些变换函数的核心在于计算相应的变换矩阵。
7、 通过数值大小可判断图形元素是否被遮挡。
8、 screenX/Y/Z函数受视图与相机矩阵共同作用影响。
9、 所示,调用ortho函数设定正交视图后,坐标计算转换为平面投影。
10、 通过调用printMatrix、printCamera和printProjection函数,可分别获取模型视图矩阵、摄像机矩阵和投影矩阵的各项数值。
