Two lines in standard form ax + by = c, with the intersection point as the
solution. Standard form rather than the slope-intercept form of linear.js,
because it represents vertical lines and the three cases fall out of one
determinant.
Coefficient sliders plus a drag handle per line that translates it, and
presets where the parallel and coincident cases differ only in c.
The readout showed the angle AOB, which does not change as M moves, so the
page contradicted its own theorem whenever M sat on the minor arc: the
inscribed angle read 120 degrees against a central angle of 120. It now
shows the measure of the arc that M does not lie on, so the inscribed angle
is half of it wherever M is. The inscribed angle is also marked undefined
when M reaches either end of the chord instead of reading zero.
The animation interpolated each vertex straight from the leg square to its
target rectangle, which is not area preserving: the square collapsed to
about a ninth of its area midway, so a lesson about shear preserving area
showed the opposite. The morph is now a composition of shears and a quarter
turn built on geom-engine/transforms.js, each of determinant 1, so the area
is exactly a squared and b squared at every frame.
The square on the hypotenuse also reached outside the viewBox. The canvas
is larger and the legs are capped so every polygon stays on screen for any
position of the draggable vertex.
rippling was raised before the stagger loop but lowered only inside the
final timeout, so a prime with no multiple left on the 100-cell grid left
the flag raised and rejected every later click. Affected 10 of the 25
primes on the grid.
The project installs tailwind 4 but app.css still used the v3 @tailwind
directives, so no theme layer was imported and the emitted stylesheet
carried none of the color, spacing, radius, responsive or hover utilities
the pages rely on. The bare 'tailwindcss' specifier is intercepted by the
bundler's @import resolver, so the file path is spelled out instead, with
@config keeping the pair palette from tailwind.config.js.
- Add pure geom-engine module (vec, triangle, circle, ticks) with 34 vitest tests
- Add 3 lessons under /hinh-hoc/: tam-giac-bang-nhau (SSS), tam-giac-dong-dang (similarity), goc-noi-tiep (inscribed angle)
- Add reactive draggable Svelte action with arrow-key a11y
- Add per-lesson colocated i18n + site chrome + lesson registry
- Enable Hình học topic card on landing; keep Số học/Đại số as Sắp ra mắt
- Codify pedagogical tick palette as Tailwind colors.pair.{1,2,3}
- Add Be Vietnam Pro via @fontsource