From 3c874326a6be737aa9ff588184f6aca61e657468 Mon Sep 17 00:00:00 2001 From: Mike Lynch Date: Sat, 7 Feb 2026 11:04:42 +1100 Subject: [PATCH] Equator is done! --- cellindex.js | 31 ++++++++++++++++++++++- label_inscribed_600cell.js | 51 ++++++++++++++++++++++++++++++++------ 2 files changed, 74 insertions(+), 8 deletions(-) diff --git a/cellindex.js b/cellindex.js index 7bd35bc..97f7d57 100644 --- a/cellindex.js +++ b/cellindex.js @@ -154,7 +154,36 @@ export const CELL600_METAMAP = { 543: 75, 289: 31, - + 48: 114, + 49: 119, + 61: 84, + 68: 85, + 74: 72, + 87: 65, + 234: 8, + 239: 7, + 241: 6, + 248: 5, + 300: 4, + 301: 3, + 356: 82, + 357: 87, + 369: 120, + 376: 113, + 403: 68, + 406: 69, + 444: 86, + 453: 83, + 460: 118, + 469: 115, + 490: 88, + 503: 81, + 525: 116, + 532: 117, + 572: 70, + 581: 67, + 592: 66, + 593: 71, }; export const CELL120_CELL5 = { diff --git a/label_inscribed_600cell.js b/label_inscribed_600cell.js index 2304239..ce19883 100644 --- a/label_inscribed_600cell.js +++ b/label_inscribed_600cell.js @@ -197,7 +197,7 @@ export const TEMPERATE_PENTAGONS_I = [ [ 140, 306, 207, 527, 274 ], [ 527, 207, 573, 347, 95 ], [ 105, 573, 207, 306, 585 ], -] +]; export const TEMPERATE_PENTAGONS = TEMPERATE_PENTAGONS_I.map((f) => { return f.map((nid) => CELLINDEX.CELL600_METAMAP[nid]) @@ -222,13 +222,50 @@ export function layer_three(shape, pentagons) { } } +export const TEMPERATE_APICES = [ + 563, + 513, + 285, + 324, + 231, + 487, + 413, + 425, + 378, + 388, + 543, + 289, +]; -/*const cell600 = make_one_600cell(); -const layered = insc600_layers(cell600); +// this one generates the mapping to the base 600 cell as well, unlike +// previous versions where I did the mapping by hand -for( const d in layered ) { - console.log(`dist = ${d}`); - layer_neighbours(cell600, layered[d]); +export function equator(i600, b600, apices) { + const pairs = []; + // get all 30 of the edges on the temperate dodeca + for( let i = 0; i < 11; i++ ) { + for( let j = i + 1; j < 12; j++ ) { + const s = shared_neighbours(i600, [ apices[i], apices[j] ]); + if( s.length > 0 ) { + const e = s.filter((n) => !(n in CELLINDEX.CELL600_METAMAP)); + pairs.push([apices[i], apices[j], e]); + } + } + } + const MAPPED = Object.values(CELLINDEX.CELL600_METAMAP); + const eq = {}; + for( const pair of pairs ) { + const b1 = CELLINDEX.CELL600_METAMAP[pair[0]]; + const b2 = CELLINDEX.CELL600_METAMAP[pair[1]]; + const s = shared_neighbours(b600, [ b1, b2 ]); + const e = s.filter((n) => !MAPPED.includes(n)); + if( e.length !== 1 ) { + console.log(`Bad value at ${pair}`); + } else { + eq[pair[2]] = e[0]; + } + } + return eq; } -*/ +