Applied the new colour scheme to the 120-cell / 5-cell partition
This commit is contained in:
parent
8cc2622ae4
commit
301609fd41
1223
cellindex.js
1223
cellindex.js
File diff suppressed because it is too large
Load Diff
@ -9,8 +9,8 @@ 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 scolours = scheme.colors();
|
const colours = scheme.colors();
|
||||||
const colours = [ ...scolours, ...scolours, ...scolours, ...scolours, ...scolours, ...scolours, ...scolours, ...scolours ];
|
colours.reverse();
|
||||||
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);
|
||||||
|
|||||||
@ -363,20 +363,47 @@ export function check_metamap_completeness() {
|
|||||||
export function metamap_to_labels() {
|
export function metamap_to_labels() {
|
||||||
const b600 = base_600cell();
|
const b600 = base_600cell();
|
||||||
const i600 = make_one_600cell();
|
const i600 = make_one_600cell();
|
||||||
const labels = {
|
const mapping = {};
|
||||||
1: [],
|
|
||||||
2: [],
|
|
||||||
3: [],
|
|
||||||
4: [],
|
|
||||||
5: [],
|
|
||||||
};
|
|
||||||
for( const inode of i600.nodes ) {
|
for( const inode of i600.nodes ) {
|
||||||
const ml = meta600_label(b600, inode.id);
|
mapping[inode.id] = meta600_label(b600, inode.id);;
|
||||||
labels[ml].push(inode.id);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
console.log(JSON.stringify(labels, null, 2));
|
return mapping;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export function cell5_labels() {
|
||||||
|
const labels = metamap_to_labels();
|
||||||
|
|
||||||
metamap_to_labels();
|
// now build a dict of the 120 cell5s with the colours from the above
|
||||||
|
|
||||||
|
const cell5map = {};
|
||||||
|
const CELL5S = CELLINDEX.CELL120_CELL5.cell5s;
|
||||||
|
|
||||||
|
for( const c5i in CELL5S ) {
|
||||||
|
const n1 = CELL5S[c5i][0]; // label 1 node;
|
||||||
|
const ml = labels[n1];
|
||||||
|
cell5map[c5i] = ml;
|
||||||
|
}
|
||||||
|
return cell5map;
|
||||||
|
}
|
||||||
|
|
||||||
|
export function rebuild_cell5_index() {
|
||||||
|
|
||||||
|
const labels = metamap_to_labels();
|
||||||
|
const new_cell5s = {};
|
||||||
|
const CELL5S = CELLINDEX.CELL120_CELL5;
|
||||||
|
|
||||||
|
for( const c5i in CELL5S ) {
|
||||||
|
const n1 = CELL5S[c5i][0]; // label 1 node;
|
||||||
|
const ml = labels[n1];
|
||||||
|
new_cell5s[c5i] = {
|
||||||
|
nodes: CELL5S[c5i],
|
||||||
|
label: ml
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return new_cell5s;
|
||||||
|
}
|
||||||
|
|
||||||
|
const nc5 = rebuild_cell5_index();
|
||||||
|
|
||||||
|
console.log(JSON.stringify(nc5, null, 4));
|
||||||
|
|||||||
47
polytopes.js
47
polytopes.js
@ -474,15 +474,6 @@ export const cell120_inscribed = () => {
|
|||||||
links.push(...links600);
|
links.push(...links600);
|
||||||
}
|
}
|
||||||
|
|
||||||
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 = 8);
|
|
||||||
links.push(...links5);
|
|
||||||
}
|
|
||||||
|
|
||||||
return {
|
return {
|
||||||
name: '120-cell',
|
name: '120-cell',
|
||||||
nodes: nodes,
|
nodes: nodes,
|
||||||
@ -491,14 +482,11 @@ export const cell120_inscribed = () => {
|
|||||||
{ name: "none", links: [ 0 ]},
|
{ name: "none", links: [ 0 ]},
|
||||||
{ name: "one inscribed 600-cell", links: [ 0, 1 ] },
|
{ name: "one inscribed 600-cell", links: [ 0, 1 ] },
|
||||||
{ name: "five inscribed 600-cells", links: [ 0, 1, 2, 3, 4, 5 ] },
|
{ name: "five inscribed 600-cells", links: [ 0, 1, 2, 3, 4, 5 ] },
|
||||||
{ name: "120 inscribed 5-cells", links: [ 0, 8 ] },
|
],
|
||||||
],
|
|
||||||
description: `The 120-cell is the four-dimensional analogue of the
|
description: `The 120-cell is the four-dimensional analogue of the
|
||||||
dodecahedron, and consists of 120 dodecahedra joined at 720 faces,
|
dodecahedron, and consists of 120 dodecahedra joined at 720 faces,
|
||||||
with three dodecahedra around each edge. It is dual to the 600-cell,
|
with three dodecahedra around each edge. It is dual to the 600-cell,
|
||||||
and five 600-cells can be inscribed in its vertices. The converse
|
and five 600-cells can be inscribed in its vertices.` ,
|
||||||
of this allows 120 5-cells (each of which has one vertex in each
|
|
||||||
of the 5 600-cells) to be inscribed in the 120-cell.`,
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -523,28 +511,37 @@ export const cell120_alt = () => {
|
|||||||
|
|
||||||
export const cell120_inscribed_cell5 = () => {
|
export const cell120_inscribed_cell5 = () => {
|
||||||
const nodes = make_120cell_vertices();
|
const nodes = make_120cell_vertices();
|
||||||
const links = [];
|
const links = auto_detect_edges(nodes, 4);
|
||||||
|
|
||||||
const CELL5S = CELLINDEX.CELL120_CELL5.cell5s;
|
links.map((l) => l.label = 0);
|
||||||
|
|
||||||
|
const CELL5S = CELLINDEX.CELL120_CELL5;
|
||||||
|
|
||||||
for( const c5 in CELL5S ) {
|
for( const c5 in CELL5S ) {
|
||||||
const nodes5 = nodes.filter((n) => CELL5S[c5].includes(n.id));
|
const nodes5 = nodes.filter((n) => CELL5S[c5].nodes.includes(n.id));
|
||||||
const links5 = auto_detect_edges(nodes5, 5);
|
const links5 = auto_detect_edges(nodes5, 5);
|
||||||
links5.map((l) => l.label = Number(c5));
|
links5.map((l) => l.label = CELL5S[c5].label);
|
||||||
links.push(...links5);
|
links.push(...links5);
|
||||||
nodes5.map((n) => n.label = Number(c5));
|
nodes5.map((n) => n.label = CELL5S[c5].label);
|
||||||
}
|
}
|
||||||
|
|
||||||
const show_links = Array.from({ length: 128 }, (_, i) => i);
|
|
||||||
|
|
||||||
return {
|
return {
|
||||||
name: '120 5-cells',
|
name: '120-cell with 5-cells',
|
||||||
nodes: nodes,
|
nodes: nodes,
|
||||||
links: links,
|
links: links,
|
||||||
options: [
|
options: [
|
||||||
{ name: "none", links: show_links},
|
{ name: "all", links: [0, 1, 2, 3, 4, 5] },
|
||||||
|
{ name: "24", links: [0, 1 ] },
|
||||||
|
{ name: "48", links: [0, 1, 2 ] },
|
||||||
|
{ name: "72", links: [0, 1, 2, 3 ] },
|
||||||
|
{ name: "96", links: [0, 1, 2, 3, 4 ] },
|
||||||
|
{ name: "hide 1200-cell", links: [ 1, 2, 3, 4, 5 ] },
|
||||||
],
|
],
|
||||||
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.`,
|
description: `The vertices of the 120-cell can also be partitioned
|
||||||
|
into 120 5-cells: each 5-cell has one vertex in each of the five
|
||||||
|
600-cells which can be inscribed in the 120-cell. The colours here
|
||||||
|
are taken from the partition of the inscribed 600-cells' vertices
|
||||||
|
into five 24-cells.`
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1079,7 +1076,7 @@ export const build_all = () => {
|
|||||||
cell600(),
|
cell600(),
|
||||||
cell600_layered(),
|
cell600_layered(),
|
||||||
cell120_inscribed(),
|
cell120_inscribed(),
|
||||||
cell120_test_metamap(),
|
cell120_inscribed_cell5(),
|
||||||
cell120_layered()
|
cell120_layered()
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user