镜子怎样决定你能看见房间的哪一部分?
镜子并不是把一张固定画面展示给面前的所有人。移动眼睛,能到达你的光路就变了。但反射点的表观位置依然规整:理想平面镜中,像在镜后的垂直距离,与原物在镜前的距离相同。
像的位置不变,通向它的路径却会改变。
从法线量角度
反射定律比较入射和出射光线相对于法线的角度,法线垂直镜面。理想镜面反射中,这两个角相等。若从表面量,得到的是余角,因此明确基准,可以避免光路图里很常见的混淆。
镜面位于水平线y等于0。光源坐标为−3、2,眼睛坐标为3、3,都在镜面上方。我们要寻找光线从光源反射进眼睛时的镜面交点,假定周围介质均匀、光沿直线传播。
从眼睛反向画线是一种计算方法,不是在说眼睛发出了所见的光。在这套可逆的几何模型里,同一路径可以从任一方向核对。图中同时有实线光路与虚线延长线时,尤其应分清这一点。真正需要到达观察者的是镜前反射光段;延长线用来定位光仿佛来自哪里。

先映射光源,再追踪光线
一个方便的构造,是把虚光源放在−3、−2,与真实光源隔镜面对称。从虚点向眼睛画直线,它在x等于−0.6处穿过镜面。再把真实光源连到这个交点,就得到所需入射光线。
脚本用向量反射公式核对出射方向,两侧相对法线的角度都约50.19度。镜后虚线只是几何延长线。眼睛把出射光解释为来自该点,并不要求光真的穿过镜面到那里。
“位于镜后同样距离”指的是到镜面的垂直距离,并不是虚像离每位观察者都一样远。这里的虚拟点始终在镜面下方两单位,但它到位于 (3, 3) 的眼睛的直线距离是 61 的平方根。眼睛移动时,这段距离与观看方向会改变,虚拟点本身却无需移动,也不需要换成另一个被反射物体。

最短路径,解释同一个点
对于平面镜和均匀传播速度,正确折线路径,也是所有只接触一次镜面的路径中总长度最短的。把一个端点镜像后,折线变成直线,几何更容易看懂。计算长度约7.810距离单位。
路径长度图尝试镜面上的其他交点,最小值出现在等角位置。这是驻定光程思想的一个受限例子,不表示所有光学系统都简单选择几何最短路。折射、多界面和更复杂路径,需要各自的光学分析。

眼睛移动,虚物体不动
最后一图保持眼睛高度和光源不变,只水平移动眼睛。每个位置使用不同镜面点,虚光源仍在同一组镜像坐标。所以即使进入眼睛的光线改变,反射场景仍像镜后稳定存在的空间。
有限镜面还增加可见条件:需要的反射点必须落在真实反射区域内。移动足够远,交点可能越过边缘,物体便从视野消失。镜框无法再容纳必要光路时,虚像位置本身不必改变。
反转,有明确方向
坐标构造翻转垂直镜面的分量,保留平行镜面的坐标。在这个二维例子里,y变号,x不变。这比笼统说镜子交换左右更精确;后者把光学变换,与我们拿自己比较一个想象中面对面的人时的方式混在一起。
真实镜子还会更复杂。玻璃后的反射镀层可能产生微弱附加反射,曲面会改变物像关系。粗糙表面把光散向许多方向,而不是本文单一理想反射方向。这些都不在简洁的平面镜几何内。
可信的倒影,需要一致光路
绘画中,即使镜中物体画得很漂亮,倒影也可能不对。表观位置、可见部分和观察者位置,必须符合相同几何。虚光源构造让我们能在添加材质和戏剧性灯光之前,具体检查这些关系。
有用习惯是把镜子看成对光线的约束,而不是贴在墙上的图片。问观察者在哪里、像看起来在哪里,以及连接线是否经过镜面。镜中世界之所以有说服力,是因为这些答案彼此配合。
二维草图只检查一个截面,通过它并不能保证物体在真实矩形镜中可见。三维构造还必须检查交点是否位于上下边缘之间,以及光路有无被遮挡。不过步骤依然相同:把光源关于镜面反射,连接虚拟点与眼睛,再判断交点是否落在实际镜面边界内。边界属于问题本身,并不是事后添加的装饰框。
找出能装进镜框的观察位置
为镜子指定尺寸:反射线段从 x = −1 延伸到 x = +1。光源保持在 (−3, 2),眼睛沿高度三的水平线移动。若眼睛的横坐标为 e,连接虚拟光源与眼睛的直线在 x = (2e − 9)/5 处穿过镜面。这个表达式把“移出镜框就看不见”的口头描述,变成可以检验的可见条件。
要求交点在 −1 与 +1 之间,可得眼睛的位置范围为 e = 2 到 e = 7,包括理想化的边界接触。e = 3 时交点仍是 −0.6,能看到该点。e = 0 时需要的交点为 −1.8,在镜子左边;e = 8 时为 +1.4,超出另一边。这些光路符合无限平面的几何,但有限镜子在所需位置并没有反射表面。
新增图把容许的镜面范围与计算出的交点曲线放在一起。布置场景时,这个区别很有用:加宽镜子可以容纳更多观察位置,却不改变虚像的表观深度;移动观察者可以改变可见性,也无需移动虚像。计算把眼睛与光源视为点,忽略遮挡、玻璃厚度和反射强弱。这里允许交点恰在边界,但真实镜框与有大小的瞳孔需要更细的模型。

