我有问题或者很好,我不知道如何将具有 x、y、z 值的 3d 点转换为 2d 点,
我必须绘制投影,其中我确实有点的 x、y、z 值,但我不知道如何将它们转换为 2d,以便我可以将它们移动到我的轴上。
我一直在浏览维基和谷歌,但是我不太确定应该使用哪种矩阵变换来获得想要的结果。
我们首先假设观察场景的摄像机以原点为中心,并且观察-z
方向。
然后:
现在您已经应用了上述步骤,您可能会获得一个点(x',y') = (-28.4, +134.5)
。您现在需要根据您的屏幕分辨率和相机“缩放系数”和宽高比对它们进行缩放和居中:例如,您可能想要乘以Zoom
并添加screen_center
给你的x
and y
组件(注意:大多数图形渲染系统都有y
方向朝下,因此您可能需要交换符号y
成分)。您最终可能仍会得到坐标为负或坐标大于画布大小的像素。只需丢弃它们:这意味着它们位于您的视锥体之外。
最后,您可能想知道如果您的相机坏了该怎么办not指向-z
或者不以原点为中心。对于后者,很简单:只需在执行其他操作之前将相机坐标减去所有 3D 点的分量即可。对于相机旋转,它实际上也很简单:您只需在执行其他操作之前以相机旋转的相反方式旋转点即可。这仅意味着您需要将所有 3D 坐标乘以相机旋转矩阵的转置。此步骤背后的想法是,移动相机与沿相反方向移动点完全相同(并且旋转矩阵的逆矩阵恰好是同一矩阵的转置)。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)