合肥市庐阳区濉溪路汇丰广场23单元办1-2301号房 13334162693 shouye@www.j9.com

资讯中心

透视画面中距离翻倍为何会让同样物体变小:独立演算第03例

2026-11-08

在简单透视镜头中,横向位置和物体尺寸都要除以深度。只把远处物体颜色变淡,却保持同样的投影尺寸,不符合这个几何模型。

镜头朝正深度方向,屏幕中心为横160、纵120,焦距f用像素表示。三维点投影为横160加fx除以z、纵120减fy除以z;只接受深度二至二十的点,再检查投影是否在320乘240的半开屏幕范围内。

这一例的完整输入

焦距80像素,每个对象给出中心x、y、深度及平面宽高。深度不合格的行不继续计算投影。

逐项计算记录

对象 | 中心与原尺寸 | 中心可见 | 投影x/y | 投影宽/高 0 | [-6, 8, 11, 4, 2] | 是 | 1280/11/680/11 | 320/11/160/11 1 | [-9, -1, 11, 1, 3] | 是 | 1040/11/1400/11 | 80/11/240/11 2 | [-7, 5, 1, 2, 1] | 否 | None/None | None/None 3 | [11, 6, 17, 3, 2] | 是 | 3600/17/1560/17 | 240/17/160/17 4 | [-5, -4, 0, 1, 1] | 否 | None/None | None/None 5 | [-12, -7, 8, 1, 3] | 是 | 40/190 | 10/30 6 | [-7, 7, 22, 3, 4] | 否 | None/None | None/None 7 | [-8, 2, 21, 1, 1] | 否 | None/None | None/None 8 | [3, -3, 0, 3, 2] | 否 | None/None | None/None 9 | [10, 4, 10, 1, 3] | 是 | 240/88 | 8/24

读表时先把输入与计算后的结果分开。空值表示这一步没有适用对象或没有可用结果,不应自动换成零。编号只负责识别本例中的元素,同一个数字出现在不同字段时,要先确认它代表位置、对象还是数值。

怎样复核和使用

同一深度平面上、正对镜头的小矩形,投影宽高分别为f乘原宽高再除以z。先处理近远深度,再做除法和屏幕范围判断;边界横320或纵240不属于本例的屏幕。

这是理想针孔镜头,没有镜头畸变、视口缩放或完整三角形裁剪。中心在屏幕外并不代表整个大物体完全不可见;表里的可见标记只针对中心点,不能代替包围体检测。

可以先遮住记录表,只按上述规则重算前两步,再选择一个边界条件重新试算。若结果不一致,应逐项检查输入顺序、端点是否包含以及状态在哪一步更新;不要只看最终合计相同就认为中间处理也完全正确。