Type: grilling Status: resolved Labels: wayfinder:grilling Blocked by: 01
已收口(2026-09-18,维护者「确认」)。第 1–2 轮 Q1–Q4b 全部落 ## Answer。下游 03(限位与既有相机契约的合成 + 进出状态机)随本票解除阻塞。
限位三个量(中心点、相机离地高度、range)的具体数值与换算口径是什么?
已锁:Q2=C = 三量同夹;最低仍须能贴近看设备;h_max 由「最高视野下地面垂直覆盖 ≤ 主场景区的 15%」约束。
基准数(已在澄清中算出,勿重复推导):主场景区 E-W 13,413 m、N-S 11,008 m;N-S 的 15% = 1,651 m。
还没定死的四件:
fov = 60° 是水平视场角,fovy = 2·atan(tan(30°)/aspect)。同一 1,651 m 预算下(正俯视口径):aspect 1:1 → 1,430 m;4:3 → 1,906 m;16:9 → 2,542 m —— 相差近 2×。是运行时按真实画布 aspect 反算,还是定一个保守基准写死?1/sin|pitch| 放大:同一 range 在 pitch −10° 时能看到的地面远多于 −55°。是把 range 上限做成随 pitch 动态收紧,还是取最保守 pitch 一次性定死?跨票分工边界(与 07 对齐,勿各自定死):甲方 Q11 已裁「侧视露出的范围外交给雾气遮盖」。据此,本票应倾向限位只按正俯视基准、不随 pitch 收紧,把侧视露出的活留给 07 的雾气;否则 02 若又按最保守 pitch 收紧,range 上限会被过度压缩(用户连俯视 15% 的县城都到不了),与 Q2 冲突。反过来说,若本票最终决定「随 pitch 收紧」,则 07 的雾气兜侧视职责可相应减轻——两条路只能二选一,答案里必须显式写出与 07 的这条边界。
RANGE_LIMITS.min = 120 m,票 30 已把拉近到 120 m 时的黑屏修掉)。h_min 是「不低于地形/不钻进地下」,还是一个正的绝对下限?若是前者,它与票 30 的地形感知拾取如何衔接?另注:现有 home 预设 pitch −55, range 12000 在此预算下超标 5.8× —— 该冲突不在本票裁决,见 03。
维护者答复:Q1=A; Q2=选A(正俯视只提供一个参考基准值,其它倾斜角不改变该规则); Q3=(a)(度量只在正俯视定义); Q4=(ii)(h_min 是缩放下限,但确实还要「防入地」)。编号为本票访谈编号。
range_max = 1651 / (2·tan(fovY/2)),fovY 取 engine.fovY()(运行时真实垂直视场角,随画布 aspect 变)。resize 不主动回拉,clamp 只在输入时生效(现状)。range_max 固定为正俯视导出值。与 07 的边界:02 只保正俯视垂直覆盖 ≤ 15%,侧视露出的范围外由 07 雾遮盖。2·range·tan(fovY/2));该度量只在正俯视定义,pitch 变化时不扩展。range_min = 120 m(票 30 已锁,RANGE_LIMITS.min);此外维护者确要一条额外的「防入地」下限(相机不入地形),口径见第 2 轮。维护者答复:Q4b=a,margin 暂定 10 m。
globe.getHeight 采样该处地形,不足则夹 range(不夹 pitch、不动 pivot);瓦片未加载时退回固定 10 m 绝对下限。「不足时夹 range」的合成规则随 03 实现。primaryArea.bounds(01,矩形包含)。range ∈ [120, range_max],range_max = 1651 / (2·tan(fovY/2))(fovY 运行时实时、随 aspect 变;正俯视基准,pitch 不改变该规则)。h = range·sin|pitch|:h_max 被 range_max 隐式罩住;h_min 由「range_min=120(缩放下限)+ 地形感知 ≥ 地形+10m(防入地)」双保险。pipeline 视图 range 400–6000 与 range_max 的合成优先级、home 预设超标 5.8×、到边界硬停/阻尼渐停 —— 均归 03;雾曲线归 07;E-W 水平覆盖在宽屏下超过 E-W 的 15% 属甲方「仅垂直视野」口径的自然结果,接受。
事实核实:
domain/camera.js:RANGE_LIMITS = { min: 120, max: 30000000 } 是唯一全局常量;域层只有 spring-arm 的 {heading, pitch, range},没有「相机离地高度 h」这个量。相机离地高度 ≈ range · sin|pitch|(pivot 已由票 30 地形感知,其 height 即 pivot 处地表高)。cesiumEngine.fovY() 返回 camera.frustum.fovy(Cesium 按水平 60° + 画布 aspect 实时算出),resize 即变。zoomByWheel / setHpr / applyViewPreset),无逐帧主动回拉。第 1 轮四问已发维护者:Q1 宽高比 / Q2 pitch / Q3 度量口径 / Q4 h_min 语义。
维护者答复:Q1=A; Q2=正俯视约束只提供一个相机高度/弹簧臂长度的参考基准值,其它倾斜角不改变该规则(选A); Q3=(a),度量只在正俯视定义; Q4=(ii),h_min 是缩放下限,但确实还要「防入地」。
已写入 ## Answer 第 1 轮。剩余:Q4 的「防入地」取地形感知还是绝对小值、margin 取多少 —— 第 2 轮发出。
维护者答复:Q4b=a,并暂定 margin = 10 m。已写入 ## Answer 第 2 轮(地形感知下限:相机离地高度 ≥ 正下方地形 + 10 m 暂定;不足时夹 range,机制落 03)。剩余动作:等维护者确认最终 Answer 全文后,本票 resolved + 写 map Decisions-so-far 索引。
维护者确认。已执行:Status: claimed → resolved、进度 100%、map.md 的 Decisions-so-far 与任务清单同步、map 进度更新。下游 03 的 Blocked by: 01,02 两项齐备,随之解锁。