# 望远镜动画修订规格

## 目标

- 显示被观察物体、物镜、倒立实像、目镜、最终虚像之间的完整关系。
- 用物距滑块解释课本中“观察近处物体时，镜筒长度应适当增长”的原因。
- 最终虚像必须由目镜出射光线的反向延长线确定，不能随意摆放。

## 物理模型

- 物镜成像使用薄透镜公式：`1/f物 = 1/u + 1/v物`。
- 远处物体时，`u` 很大，`v物 ≈ f物`，正常调焦近似 `L ≈ f物 + f目`。
- 近处物体时，`v物` 增大，推荐镜筒长度应变为 `L ≈ v物 + f目`，所以镜筒需要适当增长。
- 物镜形成的倒立实像作为目镜的物；目镜后的出射光线向前反向延长，交点为最终虚像点。

## 光路作图

- 主光路必须连续：物体发光或远处近似平行光进入物镜，物镜后直线传播到倒立实像点，再直线进入目镜，最后由目镜折射出射。
- 物镜后到目镜前的光线不能在未到目镜时提前弯折；倒立实像点只是光线交点，不是折射点。
- 目镜作图区补充三条特殊光线：过目镜光心的光线方向不变；平行主光轴入射的光线折射后经过目镜后焦点；经过目镜前焦点的光线折射后近似平行主光轴。
- 特殊光线属于解释层，必须比主光路更细、更淡，箭头不得遮挡焦点、实像点、目镜和反向延长线交点。

## 参数验收

- 调节 `u` 必须改变物镜像距 `v物`、推荐目镜位置和“镜筒应增长”的说明。
- 调节 `f物` 必须改变物镜焦点、物镜像距、推荐镜筒长度和角放大倍数。
- 调节 `f目` 必须改变目镜焦点、目镜出射光线和角放大倍数。
- 调节 `L` 必须能从清晰调焦进入未调焦状态，并显示焦点错开或推荐目镜位置。

## 自动检查

- 检查存在物距控制、被观察物体、物距标注和推荐目镜位置。
- 检查近物体推荐镜筒长度大于远物体推荐镜筒长度。
- 检查至少三条连续主光路，并确认物镜后到目镜前不发生无故弯折。
- 检查目镜出射光、反向延长线、最终虚像点和虚像箭头存在。
- 检查三条目镜特殊光线存在，且虚像点不超出 SVG 画框。

## 本次修订

- 被观察物体改为粗箭头，不再使用山、太阳、色块等装饰，避免干扰光路判断。
- 物距控制必须同时改变三处画面：左侧“远-近”物距标记、入射光线是否近似平行、下方镜筒增长标尺。
- 当物距较远时，入射光按近似平行光显示；当物距明显变小时，入射光改为从物体箭头顶端发散到物镜，避免“近物体仍用平行光”的物理矛盾。
- 增加“远物调焦位置”和“当前推荐目镜位置”的对比，直接显示 `ΔL = (v物 + f目) - (f物 + f目)`，让学生看到近物体时镜筒应适当拉长。
