Codex and claude[bot]
ac077d9b6d
fix: a mixed-thickness legacy apex converges honestly ( #339 )
...
isDegenerateApexCorner measured the inner-face convergence as
max(h1,h2)/tan(theta/2) — for a 10-degree apex between a 15 cm and a 30 cm
wall that overstates the distance (171.5 cm against the true 128.3/128.9 on
160 cm edges), the corner failed the "inside both edges" test and rendered
as the #329 trident again. Worse, the verdict depended on which neighbouring
edge carried the thicker wall.
The check now intersects the two actual face lines: the meeting point lands
at (hOther + hOwn*cos(theta))/sin(theta) along each edge, degenerate only
when inside both. With equal halves this reduces algebraically to the old
h/tan(theta/2), so equal-thickness verdicts are unchanged by construction —
pinned by the untouched section-4 units and the full golden matrix (136
scenes verified). New units cover both traversal orders of the mixed apex,
the one-point outset tip, the 30-degree ordinary pair and the zero-thickness
guard.
The write path is untouched: P1 forbids new sub-15-degree corners since
issue 329, this is purely how a legacy document renders.
Issue: #339
User-Visible: yes
2026-08-28 10:46:27 +00:00
..
2026-08-27 23:32:07 +03:00
2026-08-12 19:18:54 +03:00
2026-08-20 19:32:16 +00:00
2026-08-28 11:58:46 +03:00
2026-08-28 05:40:28 +00:00
2026-08-28 10:44:27 +03:00
2026-08-22 13:45:26 +03:00
2026-08-23 00:34:55 +03:00
2026-08-26 02:20:57 +03:00
2026-08-28 05:40:28 +00:00
2026-08-09 21:51:33 +03:00
2026-08-16 21:53:41 +03:00
2026-08-08 21:33:09 +03:00
2026-08-28 05:40:28 +00:00
2026-08-24 17:13:21 +03:00
2026-08-20 11:00:22 +03:00
2026-08-27 23:17:52 +00:00
2026-08-20 11:00:22 +03:00
2026-08-28 05:40:28 +00:00
2026-08-27 22:41:46 +03:00
2026-08-23 22:24:32 +03:00
2026-08-19 22:37:25 +03:00
2026-08-23 08:08:17 +03:00
2026-08-16 22:35:54 +03:00
2026-08-23 16:32:12 +03:00
2026-08-23 00:19:54 +03:00
2026-08-28 05:40:28 +00:00
2026-08-28 05:40:28 +00:00
2026-08-24 15:06:06 +03:00
2026-08-11 19:15:21 +03:00
2026-08-19 23:33:44 +03:00
2026-08-11 02:49:42 +03:00
2026-08-10 00:24:42 +03:00
2026-08-28 11:58:46 +03:00
2026-08-28 11:52:36 +03:00
2026-08-25 12:49:41 +03:00
2026-08-19 02:12:37 +03:00
2026-08-13 00:14:51 +03:00
2026-08-28 05:40:28 +00:00
2026-08-28 11:58:46 +03:00
2026-08-28 11:58:46 +03:00
2026-08-20 01:38:01 +03:00
2026-08-23 01:59:26 +03:00
2026-08-14 00:43:13 +03:00
2026-08-14 00:43:13 +03:00
2026-08-26 01:34:20 +03:00
2026-08-28 10:46:27 +00:00
2026-08-13 15:28:19 +03:00
2026-08-11 22:12:08 +03:00
2026-08-17 16:45:41 +03:00
2026-08-17 16:45:41 +03:00
2026-08-18 21:31:04 +03:00
2026-08-12 12:43:27 +03:00
2026-08-27 00:21:23 +03:00
2026-08-28 01:33:36 +03:00
2026-08-28 05:40:28 +00:00
2026-08-28 05:40:28 +00:00
2026-08-28 05:40:28 +00:00
2026-08-19 18:04:11 +03:00
2026-08-22 12:25:05 +03:00
2026-08-25 12:17:30 +03:00
2026-08-19 15:43:23 +03:00
2026-08-23 01:59:26 +03:00
2026-08-23 01:59:26 +03:00
2026-08-26 02:20:57 +03:00
2026-08-28 05:40:28 +00:00
2026-08-19 15:43:23 +03:00
2026-08-10 18:01:16 +03:00
2026-08-28 05:40:28 +00:00
2026-08-28 10:19:37 +03:00
2026-08-22 14:47:38 +03:00
2026-08-27 13:58:06 +03:00
2026-08-26 14:01:58 +03:00
2026-08-25 16:36:55 +03:00
2026-08-20 08:42:34 +03:00
2026-08-26 10:28:04 +03:00
2026-08-28 12:47:30 +03:00
2026-08-10 18:01:16 +03:00
2026-08-27 18:55:41 +03:00
2026-08-28 05:40:28 +00:00
2026-08-23 10:15:45 +03:00
2026-08-26 02:20:57 +03:00
2026-08-27 20:30:07 +03:00
2026-08-24 22:59:33 +03:00
2026-08-26 02:20:57 +03:00
2026-08-28 05:40:28 +00:00
2026-08-24 17:35:45 +03:00
2026-08-22 10:56:22 +03:00
2026-08-22 15:32:55 +03:00
2026-08-11 02:49:42 +03:00
2026-08-28 05:40:28 +00:00
2026-08-22 18:32:52 +03:00
2026-08-28 10:25:36 +03:00
2026-08-23 00:35:48 +03:00
2026-08-27 16:33:47 +03:00
2026-08-17 16:45:41 +03:00
2026-08-19 02:49:39 +03:00
2026-08-21 00:50:15 +03:00
2026-08-25 14:47:04 +03:00
2026-08-26 01:34:20 +03:00
2026-08-26 01:55:00 +03:00
2026-08-17 12:01:14 +03:00
2026-08-28 11:58:46 +03:00
2026-08-09 21:51:33 +03:00
2026-08-28 12:47:37 +03:00
2026-08-14 03:32:53 +03:00
2026-08-11 05:40:32 +03:00
2026-08-08 21:33:09 +03:00
2026-08-26 13:39:52 +03:00
2026-08-22 10:56:38 +03:00
2026-08-21 13:25:16 +03:00
2026-08-27 20:30:07 +03:00
2026-08-28 05:40:28 +00:00
2026-08-27 15:00:30 +03:00
2026-08-28 05:40:28 +00:00
2026-08-26 13:39:52 +03:00