Compare commits
1 Commits
main
...
feature-12
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
36d3eaff93 |
94
cellindex.js
94
cellindex.js
@ -949,6 +949,100 @@ export const CELL120_CELL5 = {
|
||||
541
|
||||
]
|
||||
},
|
||||
"some_cell5s": {
|
||||
"1": [
|
||||
27,
|
||||
28,
|
||||
264,
|
||||
309,
|
||||
275
|
||||
],
|
||||
"2": [
|
||||
223,
|
||||
76,
|
||||
238,
|
||||
84,
|
||||
225
|
||||
],
|
||||
"3": [
|
||||
253,
|
||||
44,
|
||||
283,
|
||||
304,
|
||||
42
|
||||
],
|
||||
"4": [
|
||||
419,
|
||||
112,
|
||||
197,
|
||||
578,
|
||||
521
|
||||
],
|
||||
"5": [
|
||||
339,
|
||||
14,
|
||||
384,
|
||||
382,
|
||||
337
|
||||
],
|
||||
"6": [
|
||||
331,
|
||||
4,
|
||||
335,
|
||||
390,
|
||||
386
|
||||
],
|
||||
"7": [
|
||||
427,
|
||||
160,
|
||||
551,
|
||||
146,
|
||||
557
|
||||
],
|
||||
"8": [
|
||||
265,
|
||||
60,
|
||||
64,
|
||||
295,
|
||||
246
|
||||
],
|
||||
"9": [
|
||||
473,
|
||||
100,
|
||||
495,
|
||||
213,
|
||||
462
|
||||
],
|
||||
"10": [
|
||||
393,
|
||||
6,
|
||||
328,
|
||||
397,
|
||||
326
|
||||
],
|
||||
"11": [
|
||||
539,
|
||||
164,
|
||||
439,
|
||||
561,
|
||||
142
|
||||
],
|
||||
"12": [
|
||||
511,
|
||||
122,
|
||||
456,
|
||||
595,
|
||||
181
|
||||
],
|
||||
"13": [
|
||||
555,
|
||||
154,
|
||||
152,
|
||||
545,
|
||||
429
|
||||
]
|
||||
}
|
||||
|
||||
|
||||
};
|
||||
|
||||
|
||||
@ -437,7 +437,7 @@ function coherent_5cells_r(cell120, all5, c5s, c50) {
|
||||
|
||||
|
||||
|
||||
function coherent_5cells(cell120, all5) {
|
||||
function coherent_5cells(cell120, all5d) {
|
||||
// pick a starting point, collect coherent 5_cells, continue till
|
||||
// there aren't any new ones
|
||||
|
||||
@ -452,41 +452,68 @@ function coherent_5cells(cell120, all5) {
|
||||
|
||||
|
||||
|
||||
function coherent_all() {
|
||||
|
||||
|
||||
const cell120 = POLYTOPES.cell120_inscribed();
|
||||
const all5 = gather_5cells(cell120);
|
||||
|
||||
const cell120 = POLYTOPES.cell120_inscribed();
|
||||
const all5 = gather_5cells(cell120);
|
||||
const c5s = coherent_5cells(cell120, all5);
|
||||
|
||||
const c5s = coherent_5cells(cell120, all5);
|
||||
|
||||
const celli = c5s.map((c5) => [ "1", "2", "3", "4", "5" ].map((l) => c5[l]));
|
||||
const celli = c5s.map((c5) => [ "1", "2", "3", "4", "5" ].map((l) => c5[l]));
|
||||
|
||||
|
||||
// check it because I don't believe it yet
|
||||
// check it because I don't believe it yet
|
||||
|
||||
const vertex_check = {};
|
||||
const vertex_check = {};
|
||||
|
||||
for( const c5 of celli ) {
|
||||
for( const l in c5 ) {
|
||||
const v = c5[l];
|
||||
if( v in vertex_check ) {
|
||||
console.log(`Double count vertex ${v}`);
|
||||
for( const c5 of celli ) {
|
||||
for( const l in c5 ) {
|
||||
const v = c5[l];
|
||||
if( v in vertex_check ) {
|
||||
console.log(`Double count vertex ${v}`);
|
||||
}
|
||||
vertex_check[v] = 1;
|
||||
}
|
||||
vertex_check[v] = 1;
|
||||
}
|
||||
}
|
||||
|
||||
for( let i = 1; i < 601; i++ ) {
|
||||
if( !vertex_check[i] ) {
|
||||
console.log(`v ${i} missing`);
|
||||
for( let i = 1; i < 601; i++ ) {
|
||||
if( !vertex_check[i] ) {
|
||||
console.log(`v ${i} missing`);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
const idict = {};
|
||||
for( let i = 1; i < 121; i++ ) {
|
||||
idict[i] = celli[i - 1];
|
||||
}
|
||||
|
||||
console.log(JSON.stringify(idict, null, 2));
|
||||
}
|
||||
|
||||
|
||||
const idict = {};
|
||||
for( let i = 1; i < 121; i++ ) {
|
||||
idict[i] = celli[i - 1];
|
||||
|
||||
function coherent_one_set() {
|
||||
|
||||
|
||||
const cell120 = POLYTOPES.cell120_inscribed();
|
||||
const all5 = gather_5cells(cell120);
|
||||
|
||||
const c5ns = cell5_tetras(cell120, all5, all5[0]);
|
||||
|
||||
|
||||
const celli = c5ns.map((c5) => [ "1", "2", "3", "4", "5" ].map((l) => c5[l]));
|
||||
|
||||
|
||||
const idict = {};
|
||||
|
||||
for( let i = 0; i < celli.length; i++ ) {
|
||||
idict[i + 1] = celli[i];
|
||||
}
|
||||
|
||||
console.log(JSON.stringify(idict, null, 2));
|
||||
}
|
||||
|
||||
console.log(JSON.stringify(idict, null, 2));
|
||||
|
||||
coherent_one_set();
|
||||
|
||||
57
polytopes.js
57
polytopes.js
@ -498,6 +498,61 @@ export const cell120_inscribed_cell5 = () => {
|
||||
}
|
||||
|
||||
|
||||
export const cell120_inscribe_cell5_subset = () => {
|
||||
const nodes = make_120cell_vertices();
|
||||
const links = auto_detect_edges(nodes, 4);
|
||||
|
||||
for( const cstr in CELLINDEX.INDEX120 ) {
|
||||
label_nodes(nodes, CELLINDEX.INDEX120[cstr], Number(cstr));
|
||||
}
|
||||
|
||||
links.map((l) => l.label = 0);
|
||||
|
||||
const CELL5S = CELLINDEX.CELL120_CELL5.some_cell5s;
|
||||
const link5s = [];
|
||||
const nodes_subset = [];
|
||||
|
||||
for( const c5 in CELL5S ) {
|
||||
const nodes5 = nodes.filter((n) => CELL5S[c5].includes(n.id));
|
||||
const cell5links = auto_detect_edges(nodes5, 5);
|
||||
cell5links.map((l) => l.label = 8);
|
||||
link5s.push(...cell5links);
|
||||
for( const n5 of nodes5 ) {
|
||||
nodes_subset.push(n5);
|
||||
}
|
||||
}
|
||||
|
||||
// now add the links of the inscribed 600-cells which have the
|
||||
// node subset in them
|
||||
|
||||
const link_subset = (l) => {
|
||||
const source = nodes_subset.filter((n) => n.id === l.source);
|
||||
const target = nodes_subset.filter((n) => n.id === l.target);
|
||||
return source.length === 1 && target.length === 1;
|
||||
};
|
||||
|
||||
for( const p of [ 1, 2, 3, 4, 5 ]) {
|
||||
const nodes600 = nodes.filter((n) => n.label === p);
|
||||
const links600 = auto_detect_edges(nodes600, 12);
|
||||
links600.map((l) => l.label = p);
|
||||
for( const link of links600 ) {
|
||||
if( link_subset(link) ) {
|
||||
link5s.push(link);
|
||||
}
|
||||
}
|
||||
}
|
||||
console.log(link5s);
|
||||
|
||||
return {
|
||||
name: '120-cell 5-cell subset',
|
||||
nodes: nodes_subset,
|
||||
links: link5s,
|
||||
options: [
|
||||
{ name: "none", links: [ 0, 1, 2, 3, 4, 5, 8 ]},
|
||||
],
|
||||
description: `Showing the subset of 5-cells in one icosahedron`,
|
||||
}
|
||||
}
|
||||
|
||||
function partition_coord(i, coords, invert) {
|
||||
const j = invert ? -i : i;
|
||||
@ -913,6 +968,8 @@ export const build_all = () => {
|
||||
cell600(),
|
||||
cell600_layered(),
|
||||
cell120_inscribed(),
|
||||
cell120_inscribed_cell5(),
|
||||
cell120_inscribe_cell5_subset(),
|
||||
cell120_layered()
|
||||
];
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user