Skip to content

Guide page, Sight and shade page, conformal family note on cones - #58

Merged
mdsumner merged 1 commit into
mainfrom
claude/project-thread-1jp6b5
Oct 26, 2026
Merged

mdsumner merged 1 commit into
mainfrom
claude/project-thread-1jp6b5

Conversation

@mdsumner

Copy link
Copy Markdown
Member

Requested by Michael · project thread

A first cut of a modern guide to map projections, as a theme of the site.

  • guide.html: a reading path in twelve short chapters (the body; a light and a plane; cones and cylinders; distortion; great circles and rhumbs; the central projection beyond maps; poles and the antimeridian; the whole world; grids of cells; the array is the map; datums; things that go wrong). Each chapter links the pages that make its argument, with their hash state set. Plain HTML, no scripts. It has its own nav group, first in the nav.
  • sight.html (Sight and shade): a viewshed over a synthetic 160 x 160 TIN, decided in the eye's four gnomonic wedges, with a horizon kept while triangles are added front to back (no sort: |dcol| + |drow| from the eye). A distance slider moves the eye away from the spot towards an azimuth and elevation. At infinity it becomes the sun, the view becomes orthographic, and the visible ground is the lit ground. The lower half draws what the light sees, far to near, with the skyline. It sits after Cones and cylinders in the nav.
  • src/core/sight.js and test/check-sight.mjs: the method, checked against marching every line of sight. 99.8 to 99.96% of vertices agree across seven eyes and suns; the rest are grazing. An eye 100 000 km away agrees with the sun to 99.9%.
  • cones.html: a note that the conic radius is the polar stereographic radius raised to the power n, with Mercator as its logarithm (Lambert 1772, Snyder 1987 section 15). PROJ's lcc stops short of either end.
  • README sections and layout entries.

Credits on the pages: Snyder (1987), PROJ, GeographicLib, Greene (1986) for cube maps, De Floriani and Magillo (1994) for terrain visibility, HORAYZON (2022), and the lunashade viewshed notes. The polar chapter draws on the 2019 workshop "Challenges working with data in polar regions".

npm test passes. I checked the pages in Chromium (swiftshader).


Generated by Claude Code

guide.html is a reading path through the pages in twelve short chapters,
each linking the pages that make its argument with their state set.

sight.html decides a viewshed in the eye's gnomonic wedges, keeping a
horizon while triangles are added front to back; moving the eye away to
infinity turns it into the sun, an orthographic view, and a cast shadow.
src/core/sight.js has the method; test/check-sight.mjs checks it against
marching every line of sight.

cones.html notes that the conic radius is the polar stereographic radius
to the power n, with Mercator as its logarithm (Lambert 1772, Snyder 1987).

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01UjHPkPZaWQh5eA8NsJTGkY
@mdsumner mdsumner self-assigned this Oct 26, 2026
@mdsumner
mdsumner merged commit e6c821b into main Oct 26, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants