我正在使用CML来管理我正在制作的基于OpenGL的界面项目中的3D数学。我需要知道在距离眼点给定距离处的视锥体的宽度,该视点被保持为代表相机的4x4矩阵的一部分。我的目标是沿着视口的明显边缘定位gui对象,但距离近剪裁平面一定距离进入屏幕。
CML具有提取平截头体平面的功能,以Ax + By + Cz + D = 0形式返回。该平截头体垂直于相机,其不一定与透视投影的z轴对齐。
我想提取x和z坐标,以便将图形元素固定到距离相机不同距离的屏幕两侧。这样做的最佳方式是什么?
谢谢!
答案 0 :(得分:2)
这似乎是Finding side length of a cross-section of a pyramid frustum/truncated pyramid的副本,如果已经知道宽度的横截面距离顶点已知距离。如果您没有,并且您想自己得出答案,您可以按照这些步骤操作。
请注意,我们已经找到了截头体横截面一侧的长度。这适用于任何平截头体的任何垂直横截面。这可以扩展到使其适应非垂直横截面。