GEOMETRY LAB / 几何实验室
椭圆里的光
改变一个方向,看一条光线如何反复折返。
本地运行 · 无须联网
光路实验
光路包络反射边界
外椭圆 a = 1.00 · b = 0.65
完整轨迹
拖动青色起点 P · 点击或拖动椭圆内部改变方向
对应的包络类型
共焦椭圆
两个焦点保持不变
有向距离乘积 K
+0.00000
两个焦点位于光线同侧
已显示 / 总光段
70 / 70
逐次计算反射
光线围出一个没有进入的区域
图是怎样算出来的?
光路:从边界点 P 出发,先求直线 P + tv 与椭圆的下一交点,再取该点的法向量 N = (x/a², y/b²),按镜面反射公式更新单位方向:
v′ = v − 2 (v · N) / (N · N) N
普通轨迹由这些交点与反射依次算出,没有让光线事先沿某条内椭圆行进。包络是独立的对照图层,关闭它不会改变光路。
不变量:写每条光路所在直线为 n · X = p,其中 n 是单位法向量。两个焦点是 (±c, 0),c² = a² − b²;它们到直线的有向距离乘积为
K = (p + c nₓ)(p − c nₓ) = p² − c² nₓ².
反射保持 K 不变。K > 0 对应共焦椭圆;−c² < K < 0 对应共焦双曲线。用同一个式子表示(分母非零时):
x² / (c² + K) + y² / K = 1.
两个细节:双曲线型的“相切”通常应看光段所在的整条直线,切点可能在延长线上;特殊方向可与渐近线重合。周期轨道只会重复有限条光段,并不会描满一条光滑包络。
计算使用浮点数。越靠近过焦点的临界方向,长期轨迹对微小误差越敏感。“过焦点”预设使用等价的焦点反射性质逐次校正方向,以免误差把轨迹推离临界情况。K = 0 和 K = −c² 是退化情况,分别包括过焦点轨迹与短轴往返轨迹。