Added a new view of the 120-cell's 5-cells with more colours
This commit is contained in:
parent
1baf2706f5
commit
ee620d752c
@ -1,6 +1,11 @@
|
|||||||
CHANGELOG
|
CHANGELOG
|
||||||
=========
|
=========
|
||||||
|
|
||||||
|
## v1.2 - 18/1/2026
|
||||||
|
|
||||||
|
Added a second visualisation of the 120-cell's 5-cells without the 120-cell links
|
||||||
|
and with more colours added so you can get a sense of the individual 5-cells.
|
||||||
|
|
||||||
## v1.1 - 1/1/2026
|
## v1.1 - 1/1/2026
|
||||||
|
|
||||||
The 120-cell now includes a visualisation of its inscribed 5-cells, which honestly
|
The 120-cell now includes a visualisation of its inscribed 5-cells, which honestly
|
||||||
|
|||||||
@ -9,12 +9,11 @@ export const get_colours = (basis) => {
|
|||||||
const luminance = hslb['color'][2];
|
const luminance = hslb['color'][2];
|
||||||
const scheme = new ColorScheme;
|
const scheme = new ColorScheme;
|
||||||
scheme.from_hue(hue).scheme("tetrade").distance(0.75);
|
scheme.from_hue(hue).scheme("tetrade").distance(0.75);
|
||||||
const colours = scheme.colors().slice(1, 9);
|
const scolours = scheme.colors();
|
||||||
colours.reverse();
|
const colours = [ ...scolours, ...scolours, ...scolours, ...scolours, ...scolours, ...scolours, ...scolours, ...scolours ];
|
||||||
const hsl = colours.map((c) => Color("#" + c).hsl());
|
const hsl = colours.map((c) => Color("#" + c).hsl());
|
||||||
const resaturated = hsl.map((hslc) => hslc.saturationl(saturation).rgbNumber());
|
const resaturated = hsl.map((hslc) => hslc.saturationl(saturation).rgbNumber());
|
||||||
resaturated.unshift(basis);
|
resaturated.unshift(basis);
|
||||||
console.log(resaturated);
|
|
||||||
return resaturated;
|
return resaturated;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -36,7 +36,7 @@
|
|||||||
<script type="module" src="/main.js"></script>
|
<script type="module" src="/main.js"></script>
|
||||||
<div id="description"></div>
|
<div id="description"></div>
|
||||||
<div id="release_notes"></div>
|
<div id="release_notes"></div>
|
||||||
<div id="info"><a href="#" id="show_notes">release 1.1</a> |
|
<div id="info"><a href="#" id="show_notes">release 1.2</a> |
|
||||||
|
|
||||||
by <a target="_blank" href="https://mikelynch.org/">Mike Lynch</a> |
|
by <a target="_blank" href="https://mikelynch.org/">Mike Lynch</a> |
|
||||||
<a target="_blank" href="https://git.tilde.town/bombinans/fourdjs">source</a></div>
|
<a target="_blank" href="https://git.tilde.town/bombinans/fourdjs">source</a></div>
|
||||||
|
|||||||
4
main.js
4
main.js
@ -1,6 +1,10 @@
|
|||||||
import * as THREE from 'three';
|
import * as THREE from 'three';
|
||||||
|
|
||||||
const RELEASE_NOTES = `
|
const RELEASE_NOTES = `
|
||||||
|
<p><b>v1.2 - 18/1/2026</b></p>
|
||||||
|
|
||||||
|
<p>Added a second visualisation of the 120-cell's 5-cells without the 120-cell links and with more colours added so you can get a sense of the individual 5-cells.</p>
|
||||||
|
|
||||||
<p><b>v1.1 - 1/1/2026</b></p>
|
<p><b>v1.1 - 1/1/2026</b></p>
|
||||||
|
|
||||||
<p>The 120-cell now includes a visualisation of its inscribed 5-cells, which honestly
|
<p>The 120-cell now includes a visualisation of its inscribed 5-cells, which honestly
|
||||||
|
|||||||
19
polytopes.js
19
polytopes.js
@ -475,7 +475,7 @@ export const cell120_inscribed = () => {
|
|||||||
|
|
||||||
export const cell120_inscribed_cell5 = () => {
|
export const cell120_inscribed_cell5 = () => {
|
||||||
const nodes = make_120cell_vertices();
|
const nodes = make_120cell_vertices();
|
||||||
const links = auto_detect_edges(nodes, 4);
|
const links = [];
|
||||||
|
|
||||||
for( const cstr in CELLINDEX.INDEX120 ) {
|
for( const cstr in CELLINDEX.INDEX120 ) {
|
||||||
label_nodes(nodes, CELLINDEX.INDEX120[cstr], Number(cstr));
|
label_nodes(nodes, CELLINDEX.INDEX120[cstr], Number(cstr));
|
||||||
@ -483,17 +483,25 @@ export const cell120_inscribed_cell5 = () => {
|
|||||||
|
|
||||||
links.map((l) => l.label = 0);
|
links.map((l) => l.label = 0);
|
||||||
|
|
||||||
|
const CELL5S = CELLINDEX.CELL120_CELL5.cell5s;
|
||||||
|
|
||||||
|
for( const c5 in CELL5S ) {
|
||||||
|
const nodes5 = nodes.filter((n) => CELL5S[c5].includes(n.id));
|
||||||
|
const links5 = auto_detect_edges(nodes5, 5);
|
||||||
|
links5.map((l) => l.label = Number(c5));
|
||||||
|
links.push(...links5);
|
||||||
|
}
|
||||||
|
|
||||||
|
const show_links = Array.from({ length: 128 }, (_, i) => i);
|
||||||
|
|
||||||
return {
|
return {
|
||||||
name: '120-cell-5-cell',
|
name: '120 5-cells',
|
||||||
nodes: nodes,
|
nodes: nodes,
|
||||||
links: links,
|
links: links,
|
||||||
options: [
|
options: [
|
||||||
{ name: "5-cells", links: [ 0, 1, 2, 3, 4, 5, 6, 7, 8 ] },
|
{ name: "none", links: show_links},
|
||||||
],
|
],
|
||||||
description: `The 120-cell with one of its 5-cells.`,
|
description: `The 120 5-cells from the 120-cell, without the latter's links. This colouring is pretty arbitrary, being based on the algorithm which partitioned the nodes: a later version will have something that's based on the symmetries of the 600-cells which each of the 5-cells has its nodes in.`,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -913,6 +921,7 @@ export const build_all = () => {
|
|||||||
cell600(),
|
cell600(),
|
||||||
cell600_layered(),
|
cell600_layered(),
|
||||||
cell120_inscribed(),
|
cell120_inscribed(),
|
||||||
|
cell120_inscribed_cell5(),
|
||||||
cell120_layered()
|
cell120_layered()
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user