laoyang
e22202271a
v20: 家谱布局推倒重写为区间法(tidy tree)—— 一次成型,无多轮推挤修补
用户反馈:"错的更离谱了,这次连位置都不对了"(v19 实测"我"跑到离父母 800px 的最右侧)。
根因:v18/v19 是「游标铺放 → 防重叠 → 同代重排 → 再防重叠 → 再硬推」
叠了四五层修补,每一层都在破坏上一层的"父居中于子女",多轮互相拉扯后整棵树漂移。
区间法规则(一次成型,天然不叠卡):
① 每棵户子树自底向上算需求宽度 needW = max(自身宽, Σ子女宽 + 间距);
② 自顶向下分配互不重叠的 x 区间,子女依次铺在父区间内;
③ 父户居中于子女的实际跨度。
跨树边(岳父母户也把妻子列为子女)只走「主父户」进树递归
(主位卡是我方血亲的那个父户,服务端给每张卡标 blood),
其余父户只留给画线段 —— 岳父母的子女横梁照样连到妻子,布局不重复铺人。
验证(20 人夹具 + 真实渲染):
· 版面五判据 A-E 全过(8/8):不重叠 / 线在卡后 / 下垂线从夫妻横线中点出 /
同代有空隙 / 横线在两卡缝隙;行分布:兄姐弟妹紧贴我、堂表在伯父下方、
岳父母贴妻子右上、外甥在舅子下方;
· 连线完整性:该连上一代的卡 0 缺线、悬空竖线 0 段;
· 反向验证 3/3:注入坏法(下垂线从左卡出 / needW 砍半 / 中点取左卡)全部变红。
2026-10-02 17:35:27 +08:00
..
2026-09-30 00:49:53 +08:00
2026-10-02 09:28:07 +08:00
2026-10-02 17:35:27 +08:00
2026-10-02 09:28:07 +08:00
2026-10-02 09:28:07 +08:00
2026-10-02 09:28:07 +08:00
2026-10-02 09:28:07 +08:00
2026-10-02 09:28:07 +08:00
2026-10-02 09:28:07 +08:00
2026-10-01 00:12:04 +08:00
2026-09-30 00:49:53 +08:00
2026-09-30 00:49:53 +08:00
2026-10-02 09:28:07 +08:00
2026-09-30 09:44:55 +08:00
2026-09-30 08:13:07 +08:00
2026-10-02 09:28:07 +08:00
2026-09-30 09:44:55 +08:00
2026-09-30 13:24:26 +08:00