我有一个2.5d视口,其中我试图表达一个盒子深度的可视化,其中45度2D线向内,好像它没有前面,你从中心点盯着里面,像这样:
-------------
| \_______/ |
| | | |
| |_______| |
| / \ |
-------------
我想用真实的3D几何图形绘制隐喻,因为相机距离(假设距离用户监视器的平均眼距为2英尺),内部矩形与外部矩形的距离是正确的< / p>
如何从以下方面推导出“公共内侧宽度”:中心相机距离,方框的宽度和高度以及我试图表示的深度?
谢谢!
答案 0 :(得分:1)
你在寻找的是perspective projection。除了相机的位置和盒子的尺寸之外,你还需要在相机和盒子之间的某个地方放置一个“屏幕”。从相机到此屏幕的距离将缩放投影框的大小。
假设相机位于原点,距离包装箱z
个单位,屏幕距离相机一个单位,框的深度为d
,宽度为2w
和高度2h
。
在3D环境空间中,框的左上角位于(-w, h, z)
位置。摄像机和此点之间的光线与(-w/z, h/z, 1)
处的投影屏幕相交。
框底部的左上角位于(-w, h, z+d)
位置,投射到(-w/(z+d), h/(z+d), 1)
。
同样,您可以找到其他投影点的位置。因此,屏幕上外框的宽度为2w/z
,内框2w/(z+d)
的宽度,类似于高度。因此,内盒只是外盒的均匀缩放版本,内盒尺寸为外盒尺寸的z/(z+d)
倍。
请注意,连接两个方框的对角线不朝向45度,除非方框恰好是正方形。