Skip to content

Instantly share code, notes, and snippets.

@syntagmatic
Last active August 27, 2015 18:33
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save syntagmatic/2535ea0b1800ff254f58 to your computer and use it in GitHub Desktop.
Save syntagmatic/2535ea0b1800ff254f58 to your computer and use it in GitHub Desktop.
Dodecaplex
600
1.85123 0.27009 0 0.707106
1.85123 -0.27009 0 0.707106
1.85123 0.437016 0.437016 0.437016
1.85123 -0.437016 0.437016 0.437016
1.85123 0 0.707106 0.27009
1.85123 0.437016 -0.437016 0.437016
1.85123 -0.437016 -0.437016 0.437016
1.85123 0 -0.707106 0.27009
1.85123 0.27009 0 -0.707106
1.85123 -0.27009 0 -0.707106
1.85123 0.437016 0.437016 -0.437016
1.85123 -0.437016 0.437016 -0.437016
1.85123 0 0.707106 -0.27009
1.85123 0.437016 -0.437016 -0.437016
1.85123 -0.437016 -0.437016 -0.437016
1.85123 0 -0.707106 -0.27009
1.85123 0.707106 0.27009 0
1.85123 0.707106 -0.27009 0
1.85123 -0.707106 0.27009 0
1.85123 -0.707106 -0.27009 0
-1.85123 0.27009 0 0.707106
-1.85123 -0.27009 0 0.707106
-1.85123 0.437016 0.437016 0.437016
-1.85123 -0.437016 0.437016 0.437016
-1.85123 0 0.707106 0.27009
-1.85123 0.437016 -0.437016 0.437016
-1.85123 -0.437016 -0.437016 0.437016
-1.85123 0 -0.707106 0.27009
-1.85123 0.27009 0 -0.707106
-1.85123 -0.27009 0 -0.707106
-1.85123 0.437016 0.437016 -0.437016
-1.85123 -0.437016 0.437016 -0.437016
-1.85123 0 0.707106 -0.27009
-1.85123 0.437016 -0.437016 -0.437016
-1.85123 -0.437016 -0.437016 -0.437016
-1.85123 0 -0.707106 -0.27009
-1.85123 0.707106 0.27009 0
-1.85123 0.707106 -0.27009 0
-1.85123 -0.707106 0.27009 0
-1.85123 -0.707106 -0.27009 0
0.27009 1.85123 0.707106 0
-0.27009 1.85123 0.707106 0
0 1.85123 0.27009 0.707106
0.437016 1.85123 0.437016 0.437016
-0.437016 1.85123 0.437016 0.437016
0.27009 1.85123 -0.707106 0
-0.27009 1.85123 -0.707106 0
0 1.85123 -0.27009 0.707106
0.437016 1.85123 -0.437016 0.437016
-0.437016 1.85123 -0.437016 0.437016
0 1.85123 0.27009 -0.707106
0.437016 1.85123 0.437016 -0.437016
-0.437016 1.85123 0.437016 -0.437016
0 1.85123 -0.27009 -0.707106
0.437016 1.85123 -0.437016 -0.437016
-0.437016 1.85123 -0.437016 -0.437016
0.707106 1.85123 0 0.27009
-0.707106 1.85123 0 0.27009
0.707106 1.85123 0 -0.27009
-0.707106 1.85123 0 -0.27009
0.27009 -1.85123 0.707106 0
-0.27009 -1.85123 0.707106 0
0 -1.85123 0.27009 0.707106
0.437016 -1.85123 0.437016 0.437016
-0.437016 -1.85123 0.437016 0.437016
0.27009 -1.85123 -0.707106 0
-0.27009 -1.85123 -0.707106 0
0 -1.85123 -0.27009 0.707106
0.437016 -1.85123 -0.437016 0.437016
-0.437016 -1.85123 -0.437016 0.437016
0 -1.85123 0.27009 -0.707106
0.437016 -1.85123 0.437016 -0.437016
-0.437016 -1.85123 0.437016 -0.437016
0 -1.85123 -0.27009 -0.707106
0.437016 -1.85123 -0.437016 -0.437016
-0.437016 -1.85123 -0.437016 -0.437016
0.707106 -1.85123 0 0.27009
-0.707106 -1.85123 0 0.27009
0.707106 -1.85123 0 -0.27009
-0.707106 -1.85123 0 -0.27009
0.27009 0 1.85123 0.707106
-0.27009 0 1.85123 0.707106
0.437016 0.437016 1.85123 0.437016
-0.437016 0.437016 1.85123 0.437016
0 0.707106 1.85123 0.27009
0.437016 -0.437016 1.85123 0.437016
-0.437016 -0.437016 1.85123 0.437016
0 -0.707106 1.85123 0.27009
0.27009 0 1.85123 -0.707106
-0.27009 0 1.85123 -0.707106
0.437016 0.437016 1.85123 -0.437016
-0.437016 0.437016 1.85123 -0.437016
0 0.707106 1.85123 -0.27009
0.437016 -0.437016 1.85123 -0.437016
-0.437016 -0.437016 1.85123 -0.437016
0 -0.707106 1.85123 -0.27009
0.707106 0.27009 1.85123 0
0.707106 -0.27009 1.85123 0
-0.707106 0.27009 1.85123 0
-0.707106 -0.27009 1.85123 0
0.27009 0 -1.85123 0.707106
-0.27009 0 -1.85123 0.707106
0.437016 0.437016 -1.85123 0.437016
-0.437016 0.437016 -1.85123 0.437016
0 0.707106 -1.85123 0.27009
0.437016 -0.437016 -1.85123 0.437016
-0.437016 -0.437016 -1.85123 0.437016
0 -0.707106 -1.85123 0.27009
0.27009 0 -1.85123 -0.707106
-0.27009 0 -1.85123 -0.707106
0.437016 0.437016 -1.85123 -0.437016
-0.437016 0.437016 -1.85123 -0.437016
0 0.707106 -1.85123 -0.27009
0.437016 -0.437016 -1.85123 -0.437016
-0.437016 -0.437016 -1.85123 -0.437016
0 -0.707106 -1.85123 -0.27009
0.707106 0.27009 -1.85123 0
0.707106 -0.27009 -1.85123 0
-0.707106 0.27009 -1.85123 0
-0.707106 -0.27009 -1.85123 0
0.27009 0.707106 0 1.85123
-0.27009 0.707106 0 1.85123
0 0.27009 0.707106 1.85123
0.437016 0.437016 0.437016 1.85123
-0.437016 0.437016 0.437016 1.85123
0.27009 -0.707106 0 1.85123
-0.27009 -0.707106 0 1.85123
0 -0.27009 0.707106 1.85123
0.437016 -0.437016 0.437016 1.85123
-0.437016 -0.437016 0.437016 1.85123
0 0.27009 -0.707106 1.85123
0.437016 0.437016 -0.437016 1.85123
-0.437016 0.437016 -0.437016 1.85123
0 -0.27009 -0.707106 1.85123
0.437016 -0.437016 -0.437016 1.85123
-0.437016 -0.437016 -0.437016 1.85123
0.707106 0 0.27009 1.85123
-0.707106 0 0.27009 1.85123
0.707106 0 -0.27009 1.85123
-0.707106 0 -0.27009 1.85123
0.27009 0.707106 0 -1.85123
-0.27009 0.707106 0 -1.85123
0 0.27009 0.707106 -1.85123
0.437016 0.437016 0.437016 -1.85123
-0.437016 0.437016 0.437016 -1.85123
0.27009 -0.707106 0 -1.85123
-0.27009 -0.707106 0 -1.85123
0 -0.27009 0.707106 -1.85123
0.437016 -0.437016 0.437016 -1.85123
-0.437016 -0.437016 0.437016 -1.85123
0 0.27009 -0.707106 -1.85123
0.437016 0.437016 -0.437016 -1.85123
-0.437016 0.437016 -0.437016 -1.85123
0 -0.27009 -0.707106 -1.85123
0.437016 -0.437016 -0.437016 -1.85123
-0.437016 -0.437016 -0.437016 -1.85123
0.707106 0 0.27009 -1.85123
-0.707106 0 0.27009 -1.85123
0.707106 0 -0.27009 -1.85123
-0.707106 0 -0.27009 -1.85123
0 1.41421 0 1.41421
0.437016 1.14412 0 1.58114
-0.437016 1.14412 0 1.58114
0.27009 1.14412 1.14412 1.14412
-0.27009 1.14412 1.14412 1.14412
0 0.437016 1.14412 1.58114
0.437016 0.707106 1.14412 1.41421
-0.437016 0.707106 1.14412 1.41421
0 1.58114 0.437016 1.14412
0.437016 1.41421 0.707106 1.14412
-0.437016 1.41421 0.707106 1.14412
0.707106 0.707106 0.707106 1.58114
-0.707106 0.707106 0.707106 1.58114
0.707106 1.14412 0.437016 1.41421
-0.707106 1.14412 0.437016 1.41421
0 -1.41421 0 1.41421
0.437016 -1.14412 0 1.58114
-0.437016 -1.14412 0 1.58114
0.27009 -1.14412 1.14412 1.14412
-0.27009 -1.14412 1.14412 1.14412
0 -0.437016 1.14412 1.58114
0.437016 -0.707106 1.14412 1.41421
-0.437016 -0.707106 1.14412 1.41421
0 -1.58114 0.437016 1.14412
0.437016 -1.41421 0.707106 1.14412
-0.437016 -1.41421 0.707106 1.14412
0.707106 -0.707106 0.707106 1.58114
-0.707106 -0.707106 0.707106 1.58114
0.707106 -1.14412 0.437016 1.41421
-0.707106 -1.14412 0.437016 1.41421
0.27009 1.14412 -1.14412 1.14412
-0.27009 1.14412 -1.14412 1.14412
0 0.437016 -1.14412 1.58114
0.437016 0.707106 -1.14412 1.41421
-0.437016 0.707106 -1.14412 1.41421
0 1.58114 -0.437016 1.14412
0.437016 1.41421 -0.707106 1.14412
-0.437016 1.41421 -0.707106 1.14412
0.707106 0.707106 -0.707106 1.58114
-0.707106 0.707106 -0.707106 1.58114
0.707106 1.14412 -0.437016 1.41421
-0.707106 1.14412 -0.437016 1.41421
0 1.41421 0 -1.41421
0.437016 1.14412 0 -1.58114
-0.437016 1.14412 0 -1.58114
0.27009 1.14412 1.14412 -1.14412
-0.27009 1.14412 1.14412 -1.14412
0 0.437016 1.14412 -1.58114
0.437016 0.707106 1.14412 -1.41421
-0.437016 0.707106 1.14412 -1.41421
0 1.58114 0.437016 -1.14412
0.437016 1.41421 0.707106 -1.14412
-0.437016 1.41421 0.707106 -1.14412
0.707106 0.707106 0.707106 -1.58114
-0.707106 0.707106 0.707106 -1.58114
0.707106 1.14412 0.437016 -1.41421
-0.707106 1.14412 0.437016 -1.41421
0.27009 -1.14412 -1.14412 1.14412
-0.27009 -1.14412 -1.14412 1.14412
0 -0.437016 -1.14412 1.58114
0.437016 -0.707106 -1.14412 1.41421
-0.437016 -0.707106 -1.14412 1.41421
0 -1.58114 -0.437016 1.14412
0.437016 -1.41421 -0.707106 1.14412
-0.437016 -1.41421 -0.707106 1.14412
0.707106 -0.707106 -0.707106 1.58114
-0.707106 -0.707106 -0.707106 1.58114
0.707106 -1.14412 -0.437016 1.41421
-0.707106 -1.14412 -0.437016 1.41421
0 -1.41421 0 -1.41421
0.437016 -1.14412 0 -1.58114
-0.437016 -1.14412 0 -1.58114
0.27009 -1.14412 1.14412 -1.14412
-0.27009 -1.14412 1.14412 -1.14412
0 -0.437016 1.14412 -1.58114
0.437016 -0.707106 1.14412 -1.41421
-0.437016 -0.707106 1.14412 -1.41421
0 -1.58114 0.437016 -1.14412
0.437016 -1.41421 0.707106 -1.14412
-0.437016 -1.41421 0.707106 -1.14412
0.707106 -0.707106 0.707106 -1.58114
-0.707106 -0.707106 0.707106 -1.58114
0.707106 -1.14412 0.437016 -1.41421
-0.707106 -1.14412 0.437016 -1.41421
0.27009 1.14412 -1.14412 -1.14412
-0.27009 1.14412 -1.14412 -1.14412
0 0.437016 -1.14412 -1.58114
0.437016 0.707106 -1.14412 -1.41421
-0.437016 0.707106 -1.14412 -1.41421
0 1.58114 -0.437016 -1.14412
0.437016 1.41421 -0.707106 -1.14412
-0.437016 1.41421 -0.707106 -1.14412
0.707106 0.707106 -0.707106 -1.58114
-0.707106 0.707106 -0.707106 -1.58114
0.707106 1.14412 -0.437016 -1.41421
-0.707106 1.14412 -0.437016 -1.41421
0.27009 -1.14412 -1.14412 -1.14412
-0.27009 -1.14412 -1.14412 -1.14412
0 -0.437016 -1.14412 -1.58114
0.437016 -0.707106 -1.14412 -1.41421
-0.437016 -0.707106 -1.14412 -1.41421
0 -1.58114 -0.437016 -1.14412
0.437016 -1.41421 -0.707106 -1.14412
-0.437016 -1.41421 -0.707106 -1.14412
0.707106 -0.707106 -0.707106 -1.58114
-0.707106 -0.707106 -0.707106 -1.58114
0.707106 -1.14412 -0.437016 -1.41421
-0.707106 -1.14412 -0.437016 -1.41421
0.437016 0 1.58114 1.14412
-0.437016 0 1.58114 1.14412
0 0 1.41421 1.41421
0 1.14412 1.58114 0.437016
0.437016 1.14412 1.41421 0.707106
-0.437016 1.14412 1.41421 0.707106
0.707106 0.437016 1.41421 1.14412
0.707106 0.707106 1.58114 0.707106
-0.707106 0.437016 1.41421 1.14412
-0.707106 0.707106 1.58114 0.707106
0 -1.14412 1.58114 0.437016
0.437016 -1.14412 1.41421 0.707106
-0.437016 -1.14412 1.41421 0.707106
0.707106 -0.437016 1.41421 1.14412
0.707106 -0.707106 1.58114 0.707106
-0.707106 -0.437016 1.41421 1.14412
-0.707106 -0.707106 1.58114 0.707106
0.437016 0 -1.58114 1.14412
-0.437016 0 -1.58114 1.14412
0 0 -1.41421 1.41421
0 1.14412 -1.58114 0.437016
0.437016 1.14412 -1.41421 0.707106
-0.437016 1.14412 -1.41421 0.707106
0.707106 0.437016 -1.41421 1.14412
0.707106 0.707106 -1.58114 0.707106
-0.707106 0.437016 -1.41421 1.14412
-0.707106 0.707106 -1.58114 0.707106
0.437016 0 1.58114 -1.14412
-0.437016 0 1.58114 -1.14412
0 0 1.41421 -1.41421
0 1.14412 1.58114 -0.437016
0.437016 1.14412 1.41421 -0.707106
-0.437016 1.14412 1.41421 -0.707106
0.707106 0.437016 1.41421 -1.14412
0.707106 0.707106 1.58114 -0.707106
-0.707106 0.437016 1.41421 -1.14412
-0.707106 0.707106 1.58114 -0.707106
0 -1.14412 -1.58114 0.437016
0.437016 -1.14412 -1.41421 0.707106
-0.437016 -1.14412 -1.41421 0.707106
0.707106 -0.437016 -1.41421 1.14412
0.707106 -0.707106 -1.58114 0.707106
-0.707106 -0.437016 -1.41421 1.14412
-0.707106 -0.707106 -1.58114 0.707106
0 -1.14412 1.58114 -0.437016
0.437016 -1.14412 1.41421 -0.707106
-0.437016 -1.14412 1.41421 -0.707106
0.707106 -0.437016 1.41421 -1.14412
0.707106 -0.707106 1.58114 -0.707106
-0.707106 -0.437016 1.41421 -1.14412
-0.707106 -0.707106 1.58114 -0.707106
0.437016 0 -1.58114 -1.14412
-0.437016 0 -1.58114 -1.14412
0 0 -1.41421 -1.41421
0 1.14412 -1.58114 -0.437016
0.437016 1.14412 -1.41421 -0.707106
-0.437016 1.14412 -1.41421 -0.707106
0.707106 0.437016 -1.41421 -1.14412
0.707106 0.707106 -1.58114 -0.707106
-0.707106 0.437016 -1.41421 -1.14412
-0.707106 0.707106 -1.58114 -0.707106
0 -1.14412 -1.58114 -0.437016
0.437016 -1.14412 -1.41421 -0.707106
-0.437016 -1.14412 -1.41421 -0.707106
0.707106 -0.437016 -1.41421 -1.14412
0.707106 -0.707106 -1.58114 -0.707106
-0.707106 -0.437016 -1.41421 -1.14412
-0.707106 -0.707106 -1.58114 -0.707106
0.437016 1.58114 1.14412 0
-0.437016 1.58114 1.14412 0
0 1.41421 1.41421 0
0.707106 1.58114 0.707106 0.707106
-0.707106 1.58114 0.707106 0.707106
0.707106 1.41421 1.14412 0.437016
-0.707106 1.41421 1.14412 0.437016
0.437016 -1.58114 1.14412 0
-0.437016 -1.58114 1.14412 0
0 -1.41421 1.41421 0
0.707106 -1.58114 0.707106 0.707106
-0.707106 -1.58114 0.707106 0.707106
0.707106 -1.41421 1.14412 0.437016
-0.707106 -1.41421 1.14412 0.437016
0.437016 1.58114 -1.14412 0
-0.437016 1.58114 -1.14412 0
0 1.41421 -1.41421 0
0.707106 1.58114 -0.707106 0.707106
-0.707106 1.58114 -0.707106 0.707106
0.707106 1.41421 -1.14412 0.437016
-0.707106 1.41421 -1.14412 0.437016
0.707106 1.58114 0.707106 -0.707106
-0.707106 1.58114 0.707106 -0.707106
0.707106 1.41421 1.14412 -0.437016
-0.707106 1.41421 1.14412 -0.437016
0.437016 -1.58114 -1.14412 0
-0.437016 -1.58114 -1.14412 0
0 -1.41421 -1.41421 0
0.707106 -1.58114 -0.707106 0.707106
-0.707106 -1.58114 -0.707106 0.707106
0.707106 -1.41421 -1.14412 0.437016
-0.707106 -1.41421 -1.14412 0.437016
0.707106 -1.58114 0.707106 -0.707106
-0.707106 -1.58114 0.707106 -0.707106
0.707106 -1.41421 1.14412 -0.437016
-0.707106 -1.41421 1.14412 -0.437016
0.707106 1.58114 -0.707106 -0.707106
-0.707106 1.58114 -0.707106 -0.707106
0.707106 1.41421 -1.14412 -0.437016
-0.707106 1.41421 -1.14412 -0.437016
0.707106 -1.58114 -0.707106 -0.707106
-0.707106 -1.58114 -0.707106 -0.707106
0.707106 -1.41421 -1.14412 -0.437016
-0.707106 -1.41421 -1.14412 -0.437016
1.41421 0 1.41421 0
1.14412 0.437016 1.58114 0
1.14412 -0.437016 1.58114 0
1.14412 0.27009 1.14412 1.14412
1.14412 -0.27009 1.14412 1.14412
1.58114 0 1.14412 0.437016
1.41421 0.437016 1.14412 0.707106
1.41421 -0.437016 1.14412 0.707106
1.14412 0.707106 1.41421 0.437016
1.14412 -0.707106 1.41421 0.437016
-1.41421 0 1.41421 0
-1.14412 0.437016 1.58114 0
-1.14412 -0.437016 1.58114 0
-1.14412 0.27009 1.14412 1.14412
-1.14412 -0.27009 1.14412 1.14412
-1.58114 0 1.14412 0.437016
-1.41421 0.437016 1.14412 0.707106
-1.41421 -0.437016 1.14412 0.707106
-1.14412 0.707106 1.41421 0.437016
-1.14412 -0.707106 1.41421 0.437016
1.41421 0 -1.41421 0
1.14412 0.437016 -1.58114 0
1.14412 -0.437016 -1.58114 0
1.14412 0.27009 -1.14412 1.14412
1.14412 -0.27009 -1.14412 1.14412
1.58114 0 -1.14412 0.437016
1.41421 0.437016 -1.14412 0.707106
1.41421 -0.437016 -1.14412 0.707106
1.14412 0.707106 -1.41421 0.437016
1.14412 -0.707106 -1.41421 0.437016
1.14412 0.27009 1.14412 -1.14412
1.14412 -0.27009 1.14412 -1.14412
1.58114 0 1.14412 -0.437016
1.41421 0.437016 1.14412 -0.707106
1.41421 -0.437016 1.14412 -0.707106
1.14412 0.707106 1.41421 -0.437016
1.14412 -0.707106 1.41421 -0.437016
-1.41421 0 -1.41421 0
-1.14412 0.437016 -1.58114 0
-1.14412 -0.437016 -1.58114 0
-1.14412 0.27009 -1.14412 1.14412
-1.14412 -0.27009 -1.14412 1.14412
-1.58114 0 -1.14412 0.437016
-1.41421 0.437016 -1.14412 0.707106
-1.41421 -0.437016 -1.14412 0.707106
-1.14412 0.707106 -1.41421 0.437016
-1.14412 -0.707106 -1.41421 0.437016
-1.14412 0.27009 1.14412 -1.14412
-1.14412 -0.27009 1.14412 -1.14412
-1.58114 0 1.14412 -0.437016
-1.41421 0.437016 1.14412 -0.707106
-1.41421 -0.437016 1.14412 -0.707106
-1.14412 0.707106 1.41421 -0.437016
-1.14412 -0.707106 1.41421 -0.437016
1.14412 0.27009 -1.14412 -1.14412
1.14412 -0.27009 -1.14412 -1.14412
1.58114 0 -1.14412 -0.437016
1.41421 0.437016 -1.14412 -0.707106
1.41421 -0.437016 -1.14412 -0.707106
1.14412 0.707106 -1.41421 -0.437016
1.14412 -0.707106 -1.41421 -0.437016
-1.14412 0.27009 -1.14412 -1.14412
-1.14412 -0.27009 -1.14412 -1.14412
-1.58114 0 -1.14412 -0.437016
-1.41421 0.437016 -1.14412 -0.707106
-1.41421 -0.437016 -1.14412 -0.707106
-1.14412 0.707106 -1.41421 -0.437016
-1.14412 -0.707106 -1.41421 -0.437016
1.14412 0 0.437016 1.58114
1.14412 0.437016 0.707106 1.41421
1.14412 -0.437016 0.707106 1.41421
-1.14412 0 0.437016 1.58114
-1.14412 0.437016 0.707106 1.41421
-1.14412 -0.437016 0.707106 1.41421
1.14412 0 -0.437016 1.58114
1.14412 0.437016 -0.707106 1.41421
1.14412 -0.437016 -0.707106 1.41421
1.14412 0 0.437016 -1.58114
1.14412 0.437016 0.707106 -1.41421
1.14412 -0.437016 0.707106 -1.41421
-1.14412 0 -0.437016 1.58114
-1.14412 0.437016 -0.707106 1.41421
-1.14412 -0.437016 -0.707106 1.41421
-1.14412 0 0.437016 -1.58114
-1.14412 0.437016 0.707106 -1.41421
-1.14412 -0.437016 0.707106 -1.41421
1.14412 0 -0.437016 -1.58114
1.14412 0.437016 -0.707106 -1.41421
1.14412 -0.437016 -0.707106 -1.41421
-1.14412 0 -0.437016 -1.58114
-1.14412 0.437016 -0.707106 -1.41421
-1.14412 -0.437016 -0.707106 -1.41421
1.58114 0.437016 0 1.14412
1.58114 -0.437016 0 1.14412
1.41421 0 0 1.41421
1.41421 0.707106 0.437016 1.14412
1.58114 0.707106 0.707106 0.707106
1.41421 -0.707106 0.437016 1.14412
1.58114 -0.707106 0.707106 0.707106
-1.58114 0.437016 0 1.14412
-1.58114 -0.437016 0 1.14412
-1.41421 0 0 1.41421
-1.41421 0.707106 0.437016 1.14412
-1.58114 0.707106 0.707106 0.707106
-1.41421 -0.707106 0.437016 1.14412
-1.58114 -0.707106 0.707106 0.707106
1.41421 0.707106 -0.437016 1.14412
1.58114 0.707106 -0.707106 0.707106
1.41421 -0.707106 -0.437016 1.14412
1.58114 -0.707106 -0.707106 0.707106
1.58114 0.437016 0 -1.14412
1.58114 -0.437016 0 -1.14412
1.41421 0 0 -1.41421
1.41421 0.707106 0.437016 -1.14412
1.58114 0.707106 0.707106 -0.707106
1.41421 -0.707106 0.437016 -1.14412
1.58114 -0.707106 0.707106 -0.707106
-1.41421 0.707106 -0.437016 1.14412
-1.58114 0.707106 -0.707106 0.707106
-1.41421 -0.707106 -0.437016 1.14412
-1.58114 -0.707106 -0.707106 0.707106
-1.58114 0.437016 0 -1.14412
-1.58114 -0.437016 0 -1.14412
-1.41421 0 0 -1.41421
-1.41421 0.707106 0.437016 -1.14412
-1.58114 0.707106 0.707106 -0.707106
-1.41421 -0.707106 0.437016 -1.14412
-1.58114 -0.707106 0.707106 -0.707106
1.41421 0.707106 -0.437016 -1.14412
1.58114 0.707106 -0.707106 -0.707106
1.41421 -0.707106 -0.437016 -1.14412
1.58114 -0.707106 -0.707106 -0.707106
-1.41421 0.707106 -0.437016 -1.14412
-1.58114 0.707106 -0.707106 -0.707106
-1.41421 -0.707106 -0.437016 -1.14412
-1.58114 -0.707106 -0.707106 -0.707106
1.14412 1.14412 0.27009 1.14412
1.14412 1.14412 -0.27009 1.14412
1.14412 1.58114 0 0.437016
1.14412 1.41421 0.437016 0.707106
1.14412 1.41421 -0.437016 0.707106
-1.14412 1.14412 0.27009 1.14412
-1.14412 1.14412 -0.27009 1.14412
-1.14412 1.58114 0 0.437016
-1.14412 1.41421 0.437016 0.707106
-1.14412 1.41421 -0.437016 0.707106
1.14412 -1.14412 0.27009 1.14412
1.14412 -1.14412 -0.27009 1.14412
1.14412 -1.58114 0 0.437016
1.14412 -1.41421 0.437016 0.707106
1.14412 -1.41421 -0.437016 0.707106
1.14412 1.14412 0.27009 -1.14412
1.14412 1.14412 -0.27009 -1.14412
1.14412 1.58114 0 -0.437016
1.14412 1.41421 0.437016 -0.707106
1.14412 1.41421 -0.437016 -0.707106
-1.14412 -1.14412 0.27009 1.14412
-1.14412 -1.14412 -0.27009 1.14412
-1.14412 -1.58114 0 0.437016
-1.14412 -1.41421 0.437016 0.707106
-1.14412 -1.41421 -0.437016 0.707106
-1.14412 1.14412 0.27009 -1.14412
-1.14412 1.14412 -0.27009 -1.14412
-1.14412 1.58114 0 -0.437016
-1.14412 1.41421 0.437016 -0.707106
-1.14412 1.41421 -0.437016 -0.707106
1.14412 -1.14412 0.27009 -1.14412
1.14412 -1.14412 -0.27009 -1.14412
1.14412 -1.58114 0 -0.437016
1.14412 -1.41421 0.437016 -0.707106
1.14412 -1.41421 -0.437016 -0.707106
-1.14412 -1.14412 0.27009 -1.14412
-1.14412 -1.14412 -0.27009 -1.14412
-1.14412 -1.58114 0 -0.437016
-1.14412 -1.41421 0.437016 -0.707106
-1.14412 -1.41421 -0.437016 -0.707106
1.58114 1.14412 0.437016 0
1.58114 1.14412 -0.437016 0
1.41421 1.41421 0 0
1.41421 1.14412 0.707106 0.437016
1.41421 1.14412 -0.707106 0.437016
-1.58114 1.14412 0.437016 0
-1.58114 1.14412 -0.437016 0
-1.41421 1.41421 0 0
-1.41421 1.14412 0.707106 0.437016
-1.41421 1.14412 -0.707106 0.437016
1.58114 -1.14412 0.437016 0
1.58114 -1.14412 -0.437016 0
1.41421 -1.41421 0 0
1.41421 -1.14412 0.707106 0.437016
1.41421 -1.14412 -0.707106 0.437016
1.41421 1.14412 0.707106 -0.437016
1.41421 1.14412 -0.707106 -0.437016
-1.58114 -1.14412 0.437016 0
-1.58114 -1.14412 -0.437016 0
-1.41421 -1.41421 0 0
-1.41421 -1.14412 0.707106 0.437016
-1.41421 -1.14412 -0.707106 0.437016
-1.41421 1.14412 0.707106 -0.437016
-1.41421 1.14412 -0.707106 -0.437016
1.41421 -1.14412 0.707106 -0.437016
1.41421 -1.14412 -0.707106 -0.437016
-1.41421 -1.14412 0.707106 -0.437016
-1.41421 -1.14412 -0.707106 -0.437016
1.14412 1.14412 1.14412 0.27009
1.14412 1.14412 1.14412 -0.27009
-1.14412 1.14412 1.14412 0.27009
-1.14412 1.14412 1.14412 -0.27009
1.14412 -1.14412 1.14412 0.27009
1.14412 -1.14412 1.14412 -0.27009
1.14412 1.14412 -1.14412 0.27009
1.14412 1.14412 -1.14412 -0.27009
-1.14412 -1.14412 1.14412 0.27009
-1.14412 -1.14412 1.14412 -0.27009
-1.14412 1.14412 -1.14412 0.27009
-1.14412 1.14412 -1.14412 -0.27009
1.14412 -1.14412 -1.14412 0.27009
1.14412 -1.14412 -1.14412 -0.27009
-1.14412 -1.14412 -1.14412 0.27009
-1.14412 -1.14412 -1.14412 -0.27009
1200
0 2
2 4
4 3
3 1
1 0
0 5
5 7
7 6
6 1
8 10
10 12
12 11
11 9
9 8
8 13
13 15
15 14
14 9
5 17
17 16
16 2
6 19
19 18
18 3
13 17
16 10
14 19
18 11
12 4
15 7
20 22
22 24
24 23
23 21
21 20
20 25
25 27
27 26
26 21
28 30
30 32
32 31
31 29
29 28
28 33
33 35
35 34
34 29
25 37
37 36
36 22
26 39
39 38
38 23
33 37
36 30
34 39
38 31
32 24
35 27
40 43
43 42
42 44
44 41
41 40
45 48
48 47
47 49
49 46
46 45
40 51
51 50
50 52
52 41
45 54
54 53
53 55
55 46
42 47
48 56
56 43
49 57
57 44
50 53
54 58
58 51
55 59
59 52
58 56
59 57
60 63
63 62
62 64
64 61
61 60
65 68
68 67
67 69
69 66
66 65
60 71
71 70
70 72
72 61
65 74
74 73
73 75
75 66
62 67
68 76
76 63
69 77
77 64
70 73
74 78
78 71
75 79
79 72
78 76
79 77
80 82
82 84
84 83
83 81
81 80
80 85
85 87
87 86
86 81
88 90
90 92
92 91
91 89
89 88
88 93
93 95
95 94
94 89
85 97
97 96
96 82
86 99
99 98
98 83
93 97
96 90
94 99
98 91
92 84
95 87
100 102
102 104
104 103
103 101
101 100
100 105
105 107
107 106
106 101
108 110
110 112
112 111
111 109
109 108
108 113
113 115
115 114
114 109
105 117
117 116
116 102
106 119
119 118
118 103
113 117
116 110
114 119
118 111
112 104
115 107
120 123
123 122
122 124
124 121
121 120
125 128
128 127
127 129
129 126
126 125
120 131
131 130
130 132
132 121
125 134
134 133
133 135
135 126
122 127
128 136
136 123
129 137
137 124
130 133
134 138
138 131
135 139
139 132
138 136
139 137
140 143
143 142
142 144
144 141
141 140
145 148
148 147
147 149
149 146
146 145
140 151
151 150
150 152
152 141
145 154
154 153
153 155
155 146
142 147
148 156
156 143
149 157
157 144
150 153
154 158
158 151
155 159
159 152
158 156
159 157
120 161
161 160
160 162
162 121
163 166
166 165
165 167
167 164
164 163
163 169
169 168
168 170
170 164
122 165
166 171
171 123
167 172
172 124
160 168
169 173
173 161
170 174
174 162
173 171
174 172
125 176
176 175
175 177
177 126
178 181
181 180
180 182
182 179
179 178
178 184
184 183
183 185
185 179
127 180
181 186
186 128
182 187
187 129
175 183
184 188
188 176
185 189
189 177
188 186
189 187
190 193
193 192
192 194
194 191
191 190
190 196
196 195
195 197
197 191
130 192
193 198
198 131
194 199
199 132
160 195
196 200
200 161
197 201
201 162
200 198
201 199
140 203
203 202
202 204
204 141
205 208
208 207
207 209
209 206
206 205
205 211
211 210
210 212
212 206
142 207
208 213
213 143
209 214
214 144
202 210
211 215
215 203
212 216
216 204
215 213
216 214
217 220
220 219
219 221
221 218
218 217
217 223
223 222
222 224
224 218
133 219
220 225
225 134
221 226
226 135
175 222
223 227
227 176
224 228
228 177
227 225
228 226
145 230
230 229
229 231
231 146
232 235
235 234
234 236
236 233
233 232
232 238
238 237
237 239
239 233
147 234
235 240
240 148
236 241
241 149
229 237
238 242
242 230
239 243
243 231
242 240
243 241
244 247
247 246
246 248
248 245
245 244
244 250
250 249
249 251
251 245
150 246
247 252
252 151
248 253
253 152
202 249
250 254
254 203
251 255
255 204
254 252
255 253
256 259
259 258
258 260
260 257
257 256
256 262
262 261
261 263
263 257
153 258
259 264
264 154
260 265
265 155
229 261
262 266
266 230
263 267
267 231
266 264
267 265
80 268
268 270
270 269
269 81
163 272
272 271
271 273
273 164
268 274
274 275
275 82
269 276
276 277
277 83
165 270
274 166
276 167
275 272
271 84
277 273
178 279
279 278
278 280
280 179
268 281
281 282
282 85
269 283
283 284
284 86
180 270
281 181
283 182
282 279
278 87
284 280
100 285
285 287
287 286
286 101
190 289
289 288
288 290
290 191
285 291
291 292
292 102
286 293
293 294
294 103
192 287
291 193
293 194
292 289
288 104
294 290
88 295
295 297
297 296
296 89
205 299
299 298
298 300
300 206
295 301
301 302
302 90
296 303
303 304
304 91
207 297
301 208
303 209
302 299
298 92
304 300
217 306
306 305
305 307
307 218
285 308
308 309
309 105
286 310
310 311
311 106
219 287
308 220
310 221
309 306
305 107
311 307
232 313
313 312
312 314
314 233
295 315
315 316
316 93
296 317
317 318
318 94
234 297
315 235
317 236
316 313
312 95
318 314
108 319
319 321
321 320
320 109
244 323
323 322
322 324
324 245
319 325
325 326
326 110
320 327
327 328
328 111
246 321
325 247
327 248
326 323
322 112
328 324
256 330
330 329
329 331
331 257
319 332
332 333
333 113
320 334
334 335
335 114
258 321
332 259
334 260
333 330
329 115
335 331
40 336
336 338
338 337
337 41
42 168
169 339
339 43
170 340
340 44
336 341
341 339
337 342
342 340
271 338
341 272
342 273
60 343
343 345
345 344
344 61
62 183
184 346
346 63
185 347
347 64
343 348
348 346
344 349
349 347
278 345
348 279
349 280
45 350
350 352
352 351
351 46
47 195
196 353
353 48
197 354
354 49
350 355
355 353
351 356
356 354
288 352
355 289
356 290
50 210
211 357
357 51
212 358
358 52
336 359
359 357
337 360
360 358
298 338
359 299
360 300
65 361
361 363
363 362
362 66
67 222
223 364
364 68
224 365
365 69
361 366
366 364
362 367
367 365
305 363
366 306
367 307
70 237
238 368
368 71
239 369
369 72
343 370
370 368
344 371
371 369
312 345
370 313
371 314
53 249
250 372
372 54
251 373
373 55
350 374
374 372
351 375
375 373
322 352
374 323
375 324
73 261
262 376
376 74
263 377
377 75
361 378
378 376
362 379
379 377
329 363
378 330
379 331
96 381
381 380
380 382
382 97
281 384
384 383
383 274
383 386
386 385
385 387
387 384
380 385
386 388
388 381
387 389
389 382
275 388
282 389
98 391
391 390
390 392
392 99
283 394
394 393
393 276
393 396
396 395
395 397
397 394
390 395
396 398
398 391
397 399
399 392
277 398
284 399
116 401
401 400
400 402
402 117
308 404
404 403
403 291
403 406
406 405
405 407
407 404
400 405
406 408
408 401
407 409
409 402
292 408
309 409
315 411
411 410
410 301
410 413
413 412
412 414
414 411
380 412
413 415
415 381
414 416
416 382
302 415
316 416
118 418
418 417
417 419
419 119
310 421
421 420
420 293
420 423
423 422
422 424
424 421
417 422
423 425
425 418
424 426
426 419
294 425
311 426
317 428
428 427
427 303
427 430
430 429
429 431
431 428
390 429
430 432
432 391
431 433
433 392
304 432
318 433
332 435
435 434
434 325
434 437
437 436
436 438
438 435
400 436
437 439
439 401
438 440
440 402
326 439
333 440
334 442
442 441
441 327
441 444
444 443
443 445
445 442
417 443
444 446
446 418
445 447
447 419
328 446
335 447
383 449
449 448
448 450
450 384
171 449
448 136
186 450
393 452
452 451
451 453
453 394
172 452
451 137
187 453
403 455
455 454
454 456
456 404
198 455
454 138
225 456
410 458
458 457
457 459
459 411
213 458
457 156
240 459
420 461
461 460
460 462
462 421
199 461
460 139
226 462
427 464
464 463
463 465
465 428
214 464
463 157
241 465
434 467
467 466
466 468
468 435
252 467
466 158
264 468
441 470
470 469
469 471
471 442
253 470
469 159
265 471
0 472
472 474
474 473
473 1
472 475
475 476
476 2
473 477
477 478
478 3
448 474
475 449
477 450
476 386
385 4
478 387
20 479
479 481
481 480
480 21
479 482
482 483
483 22
480 484
484 485
485 23
451 481
482 452
484 453
483 396
395 24
485 397
472 486
486 487
487 5
473 488
488 489
489 6
454 474
486 455
488 456
487 406
405 7
489 407
8 490
490 492
492 491
491 9
490 493
493 494
494 10
491 495
495 496
496 11
457 492
493 458
495 459
494 413
412 12
496 414
479 497
497 498
498 25
480 499
499 500
500 26
460 481
497 461
499 462
498 423
422 27
500 424
28 501
501 503
503 502
502 29
501 504
504 505
505 30
502 506
506 507
507 31
463 503
504 464
506 465
505 430
429 32
507 431
490 508
508 509
509 13
491 510
510 511
511 14
466 492
508 467
510 468
509 437
436 15
511 438
501 512
512 513
513 33
502 514
514 515
515 34
469 503
512 470
514 471
513 444
443 35
515 445
516 519
519 518
518 520
520 517
517 516
200 517
516 173
339 519
518 56
353 520
521 524
524 523
523 525
525 522
522 521
201 522
521 174
340 524
523 57
354 525
526 529
529 528
528 530
530 527
527 526
227 527
526 188
346 529
528 76
364 530
531 534
534 533
533 535
535 532
532 531
254 532
531 215
357 534
533 58
372 535
536 539
539 538
538 540
540 537
537 536
228 537
536 189
347 539
538 77
365 540
541 544
544 543
543 545
545 542
542 541
255 542
541 216
358 544
543 59
373 545
546 549
549 548
548 550
550 547
547 546
266 547
546 242
368 549
548 78
376 550
551 554
554 553
553 555
555 552
552 551
267 552
551 243
369 554
553 79
377 555
16 556
556 558
558 557
557 17
486 517
516 475
476 559
559 556
487 560
560 557
518 558
559 519
560 520
36 561
561 563
563 562
562 37
497 522
521 482
483 564
564 561
498 565
565 562
523 563
564 524
565 525
18 566
566 568
568 567
567 19
488 527
526 477
478 569
569 566
489 570
570 567
528 568
569 529
570 530
508 532
531 493
494 571
571 556
509 572
572 557
533 558
571 534
572 535
38 573
573 575
575 574
574 39
499 537
536 484
485 576
576 573
500 577
577 574
538 575
576 539
577 540
512 542
541 504
505 578
578 561
513 579
579 562
543 563
578 544
579 545
510 547
546 495
496 580
580 566
511 581
581 567
548 568
580 549
581 550
514 552
551 506
507 582
582 573
515 583
583 574
553 575
582 554
583 555
571 585
585 584
584 559
415 585
584 388
578 587
587 586
586 564
432 587
586 398
580 589
589 588
588 569
416 589
588 389
572 591
591 590
590 560
439 591
590 408
582 593
593 592
592 576
433 593
592 399
579 595
595 594
594 565
446 595
594 425
581 597
597 596
596 570
440 597
596 409
583 599
599 598
598 577
447 599
598 426
359 585
584 341
360 587
586 342
370 589
588 348
374 591
590 355
371 593
592 349
375 595
594 356
378 597
596 366
379 599
598 367
720
5 0 2 4 3 1
5 0 5 7 6 1
5 8 10 12 11 9
5 8 13 15 14 9
5 0 5 17 16 2
5 1 6 19 18 3
5 8 13 17 16 10
5 9 14 19 18 11
5 2 16 10 12 4
5 3 18 11 12 4
5 5 17 13 15 7
5 6 19 14 15 7
5 20 22 24 23 21
5 20 25 27 26 21
5 28 30 32 31 29
5 28 33 35 34 29
5 20 25 37 36 22
5 21 26 39 38 23
5 28 33 37 36 30
5 29 34 39 38 31
5 22 36 30 32 24
5 23 38 31 32 24
5 25 37 33 35 27
5 26 39 34 35 27
5 40 43 42 44 41
5 45 48 47 49 46
5 40 51 50 52 41
5 45 54 53 55 46
5 42 47 48 56 43
5 42 47 49 57 44
5 50 53 54 58 51
5 50 53 55 59 52
5 40 51 58 56 43
5 41 52 59 57 44
5 45 54 58 56 48
5 46 55 59 57 49
5 60 63 62 64 61
5 65 68 67 69 66
5 60 71 70 72 61
5 65 74 73 75 66
5 62 67 68 76 63
5 62 67 69 77 64
5 70 73 74 78 71
5 70 73 75 79 72
5 60 71 78 76 63
5 61 72 79 77 64
5 65 74 78 76 68
5 66 75 79 77 69
5 80 82 84 83 81
5 80 85 87 86 81
5 88 90 92 91 89
5 88 93 95 94 89
5 80 85 97 96 82
5 81 86 99 98 83
5 88 93 97 96 90
5 89 94 99 98 91
5 82 96 90 92 84
5 83 98 91 92 84
5 85 97 93 95 87
5 86 99 94 95 87
5 100 102 104 103 101
5 100 105 107 106 101
5 108 110 112 111 109
5 108 113 115 114 109
5 100 105 117 116 102
5 101 106 119 118 103
5 108 113 117 116 110
5 109 114 119 118 111
5 102 116 110 112 104
5 103 118 111 112 104
5 105 117 113 115 107
5 106 119 114 115 107
5 120 123 122 124 121
5 125 128 127 129 126
5 120 131 130 132 121
5 125 134 133 135 126
5 122 127 128 136 123
5 122 127 129 137 124
5 130 133 134 138 131
5 130 133 135 139 132
5 120 131 138 136 123
5 121 132 139 137 124
5 125 134 138 136 128
5 126 135 139 137 129
5 140 143 142 144 141
5 145 148 147 149 146
5 140 151 150 152 141
5 145 154 153 155 146
5 142 147 148 156 143
5 142 147 149 157 144
5 150 153 154 158 151
5 150 153 155 159 152
5 140 151 158 156 143
5 141 152 159 157 144
5 145 154 158 156 148
5 146 155 159 157 149
5 120 161 160 162 121
5 163 166 165 167 164
5 163 169 168 170 164
5 122 165 166 171 123
5 122 165 167 172 124
5 160 168 169 173 161
5 160 168 170 174 162
5 120 161 173 171 123
5 121 162 174 172 124
5 163 169 173 171 166
5 164 170 174 172 167
5 125 176 175 177 126
5 178 181 180 182 179
5 178 184 183 185 179
5 127 180 181 186 128
5 127 180 182 187 129
5 175 183 184 188 176
5 175 183 185 189 177
5 125 176 188 186 128
5 126 177 189 187 129
5 178 184 188 186 181
5 179 185 189 187 182
5 190 193 192 194 191
5 190 196 195 197 191
5 130 192 193 198 131
5 130 192 194 199 132
5 160 195 196 200 161
5 160 195 197 201 162
5 120 161 200 198 131
5 121 162 201 199 132
5 190 196 200 198 193
5 191 197 201 199 194
5 140 203 202 204 141
5 205 208 207 209 206
5 205 211 210 212 206
5 142 207 208 213 143
5 142 207 209 214 144
5 202 210 211 215 203
5 202 210 212 216 204
5 140 203 215 213 143
5 141 204 216 214 144
5 205 211 215 213 208
5 206 212 216 214 209
5 217 220 219 221 218
5 217 223 222 224 218
5 133 219 220 225 134
5 133 219 221 226 135
5 175 222 223 227 176
5 175 222 224 228 177
5 125 176 227 225 134
5 126 177 228 226 135
5 217 223 227 225 220
5 218 224 228 226 221
5 145 230 229 231 146
5 232 235 234 236 233
5 232 238 237 239 233
5 147 234 235 240 148
5 147 234 236 241 149
5 229 237 238 242 230
5 229 237 239 243 231
5 145 230 242 240 148
5 146 231 243 241 149
5 232 238 242 240 235
5 233 239 243 241 236
5 244 247 246 248 245
5 244 250 249 251 245
5 150 246 247 252 151
5 150 246 248 253 152
5 202 249 250 254 203
5 202 249 251 255 204
5 140 203 254 252 151
5 141 204 255 253 152
5 244 250 254 252 247
5 245 251 255 253 248
5 256 259 258 260 257
5 256 262 261 263 257
5 153 258 259 264 154
5 153 258 260 265 155
5 229 261 262 266 230
5 229 261 263 267 231
5 145 230 266 264 154
5 146 231 267 265 155
5 256 262 266 264 259
5 257 263 267 265 260
5 80 268 270 269 81
5 163 272 271 273 164
5 80 268 274 275 82
5 81 269 276 277 83
5 165 270 268 274 166
5 165 270 269 276 167
5 82 275 272 271 84
5 83 277 273 271 84
5 163 272 275 274 166
5 164 273 277 276 167
5 178 279 278 280 179
5 80 268 281 282 85
5 81 269 283 284 86
5 180 270 268 281 181
5 180 270 269 283 182
5 85 282 279 278 87
5 86 284 280 278 87
5 178 279 282 281 181
5 179 280 284 283 182
5 100 285 287 286 101
5 190 289 288 290 191
5 100 285 291 292 102
5 101 286 293 294 103
5 192 287 285 291 193
5 192 287 286 293 194
5 102 292 289 288 104
5 103 294 290 288 104
5 190 289 292 291 193
5 191 290 294 293 194
5 88 295 297 296 89
5 205 299 298 300 206
5 88 295 301 302 90
5 89 296 303 304 91
5 207 297 295 301 208
5 207 297 296 303 209
5 90 302 299 298 92
5 91 304 300 298 92
5 205 299 302 301 208
5 206 300 304 303 209
5 217 306 305 307 218
5 100 285 308 309 105
5 101 286 310 311 106
5 219 287 285 308 220
5 219 287 286 310 221
5 105 309 306 305 107
5 106 311 307 305 107
5 217 306 309 308 220
5 218 307 311 310 221
5 232 313 312 314 233
5 88 295 315 316 93
5 89 296 317 318 94
5 234 297 295 315 235
5 234 297 296 317 236
5 93 316 313 312 95
5 94 318 314 312 95
5 232 313 316 315 235
5 233 314 318 317 236
5 108 319 321 320 109
5 244 323 322 324 245
5 108 319 325 326 110
5 109 320 327 328 111
5 246 321 319 325 247
5 246 321 320 327 248
5 110 326 323 322 112
5 111 328 324 322 112
5 244 323 326 325 247
5 245 324 328 327 248
5 256 330 329 331 257
5 108 319 332 333 113
5 109 320 334 335 114
5 258 321 319 332 259
5 258 321 320 334 260
5 113 333 330 329 115
5 114 335 331 329 115
5 256 330 333 332 259
5 257 331 335 334 260
5 40 336 338 337 41
5 42 168 169 339 43
5 42 168 170 340 44
5 40 336 341 339 43
5 41 337 342 340 44
5 271 338 336 341 272
5 271 338 337 342 273
5 163 272 341 339 169
5 164 273 342 340 170
5 60 343 345 344 61
5 62 183 184 346 63
5 62 183 185 347 64
5 60 343 348 346 63
5 61 344 349 347 64
5 278 345 343 348 279
5 278 345 344 349 280
5 178 279 348 346 184
5 179 280 349 347 185
5 45 350 352 351 46
5 47 195 196 353 48
5 47 195 197 354 49
5 45 350 355 353 48
5 46 351 356 354 49
5 288 352 350 355 289
5 288 352 351 356 290
5 190 289 355 353 196
5 191 290 356 354 197
5 50 210 211 357 51
5 50 210 212 358 52
5 40 336 359 357 51
5 41 337 360 358 52
5 298 338 336 359 299
5 298 338 337 360 300
5 205 299 359 357 211
5 206 300 360 358 212
5 65 361 363 362 66
5 67 222 223 364 68
5 67 222 224 365 69
5 65 361 366 364 68
5 66 362 367 365 69
5 305 363 361 366 306
5 305 363 362 367 307
5 217 306 366 364 223
5 218 307 367 365 224
5 70 237 238 368 71
5 70 237 239 369 72
5 60 343 370 368 71
5 61 344 371 369 72
5 312 345 343 370 313
5 312 345 344 371 314
5 232 313 370 368 238
5 233 314 371 369 239
5 53 249 250 372 54
5 53 249 251 373 55
5 45 350 374 372 54
5 46 351 375 373 55
5 322 352 350 374 323
5 322 352 351 375 324
5 244 323 374 372 250
5 245 324 375 373 251
5 73 261 262 376 74
5 73 261 263 377 75
5 65 361 378 376 74
5 66 362 379 377 75
5 329 363 361 378 330
5 329 363 362 379 331
5 256 330 378 376 262
5 257 331 379 377 263
5 96 381 380 382 97
5 268 281 384 383 274
5 383 386 385 387 384
5 380 385 386 388 381
5 380 385 387 389 382
5 82 275 388 381 96
5 85 282 389 382 97
5 274 383 386 388 275
5 281 384 387 389 282
5 98 391 390 392 99
5 269 283 394 393 276
5 393 396 395 397 394
5 390 395 396 398 391
5 390 395 397 399 392
5 83 277 398 391 98
5 86 284 399 392 99
5 276 393 396 398 277
5 283 394 397 399 284
5 116 401 400 402 117
5 285 308 404 403 291
5 403 406 405 407 404
5 400 405 406 408 401
5 400 405 407 409 402
5 102 292 408 401 116
5 105 309 409 402 117
5 291 403 406 408 292
5 308 404 407 409 309
5 295 315 411 410 301
5 410 413 412 414 411
5 380 412 413 415 381
5 380 412 414 416 382
5 90 302 415 381 96
5 93 316 416 382 97
5 301 410 413 415 302
5 315 411 414 416 316
5 118 418 417 419 119
5 286 310 421 420 293
5 420 423 422 424 421
5 417 422 423 425 418
5 417 422 424 426 419
5 103 294 425 418 118
5 106 311 426 419 119
5 293 420 423 425 294
5 310 421 424 426 311
5 296 317 428 427 303
5 427 430 429 431 428
5 390 429 430 432 391
5 390 429 431 433 392
5 91 304 432 391 98
5 94 318 433 392 99
5 303 427 430 432 304
5 317 428 431 433 318
5 319 332 435 434 325
5 434 437 436 438 435
5 400 436 437 439 401
5 400 436 438 440 402
5 110 326 439 401 116
5 113 333 440 402 117
5 325 434 437 439 326
5 332 435 438 440 333
5 320 334 442 441 327
5 441 444 443 445 442
5 417 443 444 446 418
5 417 443 445 447 419
5 111 328 446 418 118
5 114 335 447 419 119
5 327 441 444 446 328
5 334 442 445 447 335
5 122 165 270 180 127
5 383 449 448 450 384
5 123 171 449 448 136
5 128 186 450 448 136
5 166 274 383 449 171
5 181 281 384 450 186
5 393 452 451 453 394
5 124 172 452 451 137
5 129 187 453 451 137
5 167 276 393 452 172
5 182 283 394 453 187
5 130 192 287 219 133
5 403 455 454 456 404
5 131 198 455 454 138
5 134 225 456 454 138
5 193 291 403 455 198
5 220 308 404 456 225
5 142 207 297 234 147
5 410 458 457 459 411
5 143 213 458 457 156
5 148 240 459 457 156
5 208 301 410 458 213
5 235 315 411 459 240
5 420 461 460 462 421
5 132 199 461 460 139
5 135 226 462 460 139
5 194 293 420 461 199
5 221 310 421 462 226
5 427 464 463 465 428
5 144 214 464 463 157
5 149 241 465 463 157
5 209 303 427 464 214
5 236 317 428 465 241
5 150 246 321 258 153
5 434 467 466 468 435
5 151 252 467 466 158
5 154 264 468 466 158
5 247 325 434 467 252
5 259 332 435 468 264
5 441 470 469 471 442
5 152 253 470 469 159
5 155 265 471 469 159
5 248 327 441 470 253
5 260 334 442 471 265
5 0 472 474 473 1
5 0 472 475 476 2
5 1 473 477 478 3
5 448 474 472 475 449
5 448 474 473 477 450
5 2 476 386 385 4
5 3 478 387 385 4
5 383 449 475 476 386
5 384 450 477 478 387
5 20 479 481 480 21
5 20 479 482 483 22
5 21 480 484 485 23
5 451 481 479 482 452
5 451 481 480 484 453
5 22 483 396 395 24
5 23 485 397 395 24
5 393 452 482 483 396
5 394 453 484 485 397
5 0 472 486 487 5
5 1 473 488 489 6
5 454 474 472 486 455
5 454 474 473 488 456
5 5 487 406 405 7
5 6 489 407 405 7
5 403 455 486 487 406
5 404 456 488 489 407
5 8 490 492 491 9
5 8 490 493 494 10
5 9 491 495 496 11
5 457 492 490 493 458
5 457 492 491 495 459
5 10 494 413 412 12
5 11 496 414 412 12
5 410 458 493 494 413
5 411 459 495 496 414
5 20 479 497 498 25
5 21 480 499 500 26
5 460 481 479 497 461
5 460 481 480 499 462
5 25 498 423 422 27
5 26 500 424 422 27
5 420 461 497 498 423
5 421 462 499 500 424
5 28 501 503 502 29
5 28 501 504 505 30
5 29 502 506 507 31
5 463 503 501 504 464
5 463 503 502 506 465
5 30 505 430 429 32
5 31 507 431 429 32
5 427 464 504 505 430
5 428 465 506 507 431
5 8 490 508 509 13
5 9 491 510 511 14
5 466 492 490 508 467
5 466 492 491 510 468
5 13 509 437 436 15
5 14 511 438 436 15
5 434 467 508 509 437
5 435 468 510 511 438
5 28 501 512 513 33
5 29 502 514 515 34
5 469 503 501 512 470
5 469 503 502 514 471
5 33 513 444 443 35
5 34 515 445 443 35
5 441 470 512 513 444
5 442 471 514 515 445
5 42 168 160 195 47
5 516 519 518 520 517
5 161 200 517 516 173
5 43 339 519 518 56
5 48 353 520 518 56
5 169 339 519 516 173
5 196 353 520 517 200
5 521 524 523 525 522
5 162 201 522 521 174
5 44 340 524 523 57
5 49 354 525 523 57
5 170 340 524 521 174
5 197 354 525 522 201
5 62 183 175 222 67
5 526 529 528 530 527
5 176 227 527 526 188
5 63 346 529 528 76
5 68 364 530 528 76
5 184 346 529 526 188
5 223 364 530 527 227
5 50 210 202 249 53
5 531 534 533 535 532
5 203 254 532 531 215
5 51 357 534 533 58
5 54 372 535 533 58
5 211 357 534 531 215
5 250 372 535 532 254
5 536 539 538 540 537
5 177 228 537 536 189
5 64 347 539 538 77
5 69 365 540 538 77
5 185 347 539 536 189
5 224 365 540 537 228
5 541 544 543 545 542
5 204 255 542 541 216
5 52 358 544 543 59
5 55 373 545 543 59
5 212 358 544 541 216
5 251 373 545 542 255
5 70 237 229 261 73
5 546 549 548 550 547
5 230 266 547 546 242
5 71 368 549 548 78
5 74 376 550 548 78
5 238 368 549 546 242
5 262 376 550 547 266
5 551 554 553 555 552
5 231 267 552 551 243
5 72 369 554 553 79
5 75 377 555 553 79
5 239 369 554 551 243
5 263 377 555 552 267
5 16 556 558 557 17
5 472 486 517 516 475
5 2 476 559 556 16
5 5 487 560 557 17
5 518 558 556 559 519
5 518 558 557 560 520
5 475 516 519 559 476
5 486 517 520 560 487
5 36 561 563 562 37
5 479 497 522 521 482
5 22 483 564 561 36
5 25 498 565 562 37
5 523 563 561 564 524
5 523 563 562 565 525
5 482 521 524 564 483
5 497 522 525 565 498
5 18 566 568 567 19
5 473 488 527 526 477
5 3 478 569 566 18
5 6 489 570 567 19
5 528 568 566 569 529
5 528 568 567 570 530
5 477 526 529 569 478
5 488 527 530 570 489
5 490 508 532 531 493
5 10 494 571 556 16
5 13 509 572 557 17
5 533 558 556 571 534
5 533 558 557 572 535
5 493 531 534 571 494
5 508 532 535 572 509
5 38 573 575 574 39
5 480 499 537 536 484
5 23 485 576 573 38
5 26 500 577 574 39
5 538 575 573 576 539
5 538 575 574 577 540
5 484 536 539 576 485
5 499 537 540 577 500
5 501 512 542 541 504
5 30 505 578 561 36
5 33 513 579 562 37
5 543 563 561 578 544
5 543 563 562 579 545
5 504 541 544 578 505
5 512 542 545 579 513
5 491 510 547 546 495
5 11 496 580 566 18
5 14 511 581 567 19
5 548 568 566 580 549
5 548 568 567 581 550
5 495 546 549 580 496
5 510 547 550 581 511
5 502 514 552 551 506
5 31 507 582 573 38
5 34 515 583 574 39
5 553 575 573 582 554
5 553 575 574 583 555
5 506 551 554 582 507
5 514 552 555 583 515
5 136 448 474 454 138
5 171 449 475 516 173
5 198 455 486 517 200
5 137 451 481 460 139
5 172 452 482 521 174
5 199 461 497 522 201
5 186 450 477 526 188
5 225 456 488 527 227
5 156 457 492 466 158
5 213 458 493 531 215
5 252 467 508 532 254
5 187 453 484 536 189
5 226 462 499 537 228
5 157 463 503 469 159
5 214 464 504 541 216
5 253 470 512 542 255
5 240 459 495 546 242
5 264 468 510 547 266
5 241 465 506 551 243
5 265 471 514 552 267
5 4 385 380 412 12
5 556 571 585 584 559
5 381 415 585 584 388
5 386 476 559 584 388
5 413 494 571 585 415
5 24 395 390 429 32
5 561 578 587 586 564
5 391 432 587 586 398
5 396 483 564 586 398
5 430 505 578 587 432
5 566 580 589 588 569
5 382 416 589 588 389
5 387 478 569 588 389
5 414 496 580 589 416
5 7 405 400 436 15
5 557 572 591 590 560
5 401 439 591 590 408
5 406 487 560 590 408
5 437 509 572 591 439
5 573 582 593 592 576
5 392 433 593 592 399
5 397 485 576 592 399
5 431 507 582 593 433
5 27 422 417 443 35
5 562 579 595 594 565
5 418 446 595 594 425
5 423 498 565 594 425
5 444 513 579 595 446
5 567 581 597 596 570
5 402 440 597 596 409
5 407 489 570 596 409
5 438 511 581 597 440
5 574 583 599 598 577
5 419 447 599 598 426
5 424 500 577 598 426
5 445 515 583 599 447
5 56 518 558 533 58
5 336 359 585 584 341
5 339 519 559 584 341
5 357 534 571 585 359
5 57 523 563 543 59
5 337 360 587 586 342
5 340 524 564 586 342
5 358 544 578 587 360
5 76 528 568 548 78
5 343 370 589 588 348
5 346 529 569 588 348
5 368 549 580 589 370
5 350 374 591 590 355
5 353 520 560 590 355
5 372 535 572 591 374
5 77 538 575 553 79
5 344 371 593 592 349
5 347 539 576 592 349
5 369 554 582 593 371
5 351 375 595 594 356
5 354 525 565 594 356
5 373 545 579 595 375
5 361 378 597 596 366
5 364 530 570 596 366
5 376 550 581 597 378
5 362 379 599 598 367
5 365 540 577 598 367
5 377 555 583 599 379
5 84 271 338 298 92
5 272 341 584 388 275
5 299 359 585 415 302
5 273 342 586 398 277
5 300 360 587 432 304
5 87 278 345 312 95
5 279 348 588 389 282
5 313 370 589 416 316
5 104 288 352 322 112
5 289 355 590 408 292
5 323 374 591 439 326
5 280 349 592 399 284
5 314 371 593 433 318
5 290 356 594 425 294
5 324 375 595 446 328
5 107 305 363 329 115
5 306 366 596 409 309
5 330 378 597 440 333
5 307 367 598 426 311
5 331 379 599 447 335
/*
* Hypersolid, Four-dimensional solid viewer
*
* Copyright (c) 2014 Milosz Kosmider <milosz@milosz.ca>
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
* in the Software without restriction, including without limitation the rights
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
* copies of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
* THE SOFTWARE.
*
*/
(function(Hypersolid) {
/* Begin constants. */
DEFAULT_VIEWPORT_WIDTH = 480; // Width of canvas in pixels
DEFAULT_VIEWPORT_HEIGHT = 480; // Height of canvas in pixels
DEFAULT_VIEWPORT_SCALE = 2; // Maximum distance from origin (in math units) that will be displayed on the canvas
DEFAULT_VIEWPORT_FONT = 'italic 10px sans-serif';
DEFAULT_VIEWPORT_FONT_COLOR = '#000';
DEFAULT_VIEWPORT_LINE_WIDTH = 4;
DEFAULT_VIEWPORT_LINE_JOIN = 'round';
DEFAULT_CHECKBOX_VALUES = {
perspective: { checked: true },
indices: { checked: false },
edges: { checked: true }
};
/* End constants. */
/* Begin classes. */
Hypersolid.Shape = function() {
return new Shape(Array.prototype.slice.call(arguments, 0));
};
function Shape(argv) {
var self = this,
vertices = argv[0],
edges = argv[1];
// Rotations will always be relative to the original shape to avoid rounding errors.
// This is a structure for caching the rotated vertices.
var rotatedVertices = new Array(vertices.length);
copyVertices();
// This is where we store the current rotations about each axis.
var rotations = { xy: 0, xz: 0, xw: 0, yz: 0, yw: 0, zw: 0 };
var rotationOrder = {
yz: 1,
xw: 1,
yw: 1,
zw: 1,
xy: 1,
xz: 1,
};
// Multiplication by vector rotation matrices of dimension 4
var rotateVertex = {
xy: function(v, s, c) {
tmp = c * v.x + s * v.y;
v.y = -s * v.x + c * v.y;
v.x = tmp;
},
xz: function(v, s, c) {
tmp = c * v.x + s * v.z;
v.z = -s * v.x + c * v.z;
v.x = tmp;
},
xw: function(v, s, c) {
tmp = c * v.x + s * v.w;
v.w = -s * v.x + c * v.w;
v.x = tmp;
},
yz: function(v, s, c) {
tmp = c * v.y + s * v.z;
v.z = -s * v.y + c * v.z;
v.y = tmp;
},
yw: function(v, s, c) {
tmp = c * v.y - s * v.w;
v.w = s * v.y + c * v.w;
v.y = tmp;
},
zw: function(v, s, c) {
tmp = c * v.z - s * v.w;
v.w = s * v.z + c * v.w;
v.z = tmp;
}
};
var eventCallbacks = {};
self.getOriginalVertices = function() {
return vertices;
};
self.getVertices = function() {
return rotatedVertices;
};
self.getEdges = function() {
return edges;
};
self.getRotations = function() {
return rotations;
};
// This will copy the original shape and put a rotated version into rotatedVertices
self.rotate = function(axis, theta) {
addToRotation(axis, theta);
applyRotations();
triggerEventCallbacks('rotate');
};
self.on = function(eventName, callback) {
if (eventCallbacks[eventName] === undefined) {
eventCallbacks[eventName] = [];
}
eventCallbacks[eventName].push(callback);
};
function triggerEventCallbacks(eventName) {
if (eventCallbacks[eventName] !== undefined) {
for (index in eventCallbacks[eventName]) {
eventCallbacks[eventName][index].call(self);
}
}
}
function addToRotation(axis, theta) {
rotations[axis] = (rotations[axis] + theta) % (2 * Math.PI);
}
function applyRotations() {
copyVertices();
for (var axis in rotationOrder) {
// sin and cos precomputed for efficiency
var s = Math.sin(rotations[axis]);
var c = Math.cos(rotations[axis]);
for (var i in vertices)
{
rotateVertex[axis](rotatedVertices[i], s, c);
}
}
}
function copyVertices() {
for (var i in vertices) {
var vertex = vertices[i];
rotatedVertices[i] = {
x: vertex.x,
y: vertex.y,
z: vertex.z,
w: vertex.w
};
}
}
}
Hypersolid.Viewport = function() {
return new Viewport(Array.prototype.slice.call(arguments, 0));
};
function Viewport(argv) {
var self = this,
shape = argv[0],
canvas = argv[1],
options = argv[2];
options = options || {};
var scale = options.scale || DEFAULT_VIEWPORT_SCALE;
canvas.width = options.width || DEFAULT_VIEWPORT_WIDTH;
canvas.height = options.height || DEFAULT_VIEWPORT_HEIGHT;
var bound = Math.min(canvas.width, canvas.height) / 2;
var context = canvas.getContext('2d');
context.font = options.font || DEFAULT_VIEWPORT_FONT;
context.textBaseline = 'top';
context.fillStyle = options.fontColor || DEFAULT_VIEWPORT_FONT_COLOR;
context.lineWidth = options.lineWidth || DEFAULT_VIEWPORT_LINE_WIDTH;
context.lineJoin = options.lineJoin || DEFAULT_VIEWPORT_LINE_JOIN;
var checkboxes = options.checkboxes || DEFAULT_CHECKBOX_VALUES;
var clicked = false;
var startCoords;
self.draw = function() {
var vertices = shape.getVertices();
var edges = shape.getEdges();
context.clearRect(0, 0, canvas.width, canvas.height);
var adjusted = [];
for (var i in vertices) {
if (checkboxes.perspective.checked) {
var zratio = vertices[i].z / scale;
adjusted[i] = {
x: Math.floor(canvas.width / 2 + (0.90 + zratio * 0.30) * bound * (vertices[i].x / scale)) + 0.5,
y: Math.floor(canvas.height / 2 - (0.90 + zratio * 0.30) * bound * (vertices[i].y / scale)) + 0.5,
z: 0.50 + 0.40 * zratio,
w: 121 + Math.floor(134 * vertices[i].w / scale)
};
}
else {
adjusted[i] = {
x: Math.floor(canvas.width / 2 + bound * (vertices[i].x / scale)) + 0.5,
y: Math.floor(canvas.height / 2 - bound * (vertices[i].y / scale)) + 0.5,
z: 0.50 + 0.40 * vertices[i].z / scale,
w: 121 + Math.floor(134 * vertices[i].w / scale)
};
}
}
if (checkboxes.edges.checked) {
for (var i in edges) {
var x = [adjusted[edges[i][0]].x, adjusted[edges[i][1]].x];
var y = [adjusted[edges[i][0]].y, adjusted[edges[i][1]].y];
var z = [adjusted[edges[i][0]].z, adjusted[edges[i][1]].z];
var w = [adjusted[edges[i][0]].w, adjusted[edges[i][1]].w];
context.beginPath();
context.moveTo(x[0], y[0]);
context.lineTo(x[1], y[1]);
context.closePath();
var gradient = context.createLinearGradient(x[0], y[0], x[1], y[1]); // Distance fade effect
gradient.addColorStop(0, 'rgba(' + w[0] + ',94,' + (125-Math.round(w[0]/2)) +', ' + z[0] + ')');
gradient.addColorStop(1, 'rgba(' + w[1] + ',94,' + (125-Math.round(w[0]/2)) +', ' + z[1] + ')');
context.strokeStyle = gradient;
context.stroke();
}
}
if (checkboxes.indices.checked) {
for (var i in adjusted) {
context.fillText(i.toString(), adjusted[i].x, adjusted[i].y);
}
}
};
canvas.onmousedown = function(e) {
startCoords = mouseCoords(e, canvas);
startCoords.x -= Math.floor(canvas.width / 2);
startCoords.y = Math.floor(canvas.height / 2) - startCoords.y;
clicked = true;
};
document.onmousemove = function(e) {
if (!clicked) {
return true;
}
var currCoords = mouseCoords(e, canvas);
currCoords.x -= Math.floor(canvas.width / 2);
currCoords.y = Math.floor(canvas.height / 2) - currCoords.y;
var motion = { 'x': currCoords.x - startCoords.x, 'y': currCoords.y - startCoords.y };
if (e.shiftKey && (e.altKey || e.ctrlKey)) {
shape.rotate('xy', Math.PI * motion.x / bound); // Full canvas drag ~ 2*PI
shape.rotate('zw', Math.PI * motion.y / bound);
}
else if (e.shiftKey) {
// Interpretation of this rotation varies between left- and right- brained users
shape.rotate('xw', Math.PI * motion.x / bound);
shape.rotate('yw', Math.PI * motion.y / bound);
}
else {
shape.rotate('xz', Math.PI * motion.x / bound);
shape.rotate('yz', Math.PI * motion.y / bound);
}
startCoords = currCoords;
self.draw();
};
document.onmouseup = function() {
clicked = false;
};
checkboxes.onchange = function() {
self.draw();
};
}
/* End classes. */
/* Begin methods. */
// parse ascii files from http://paulbourke.net/geometry/hyperspace/
Hypersolid.parseVEF = function(text) {
var lines = text.split("\n");
var nV = parseInt(lines[0]); // number of vertices
var nE = parseInt(lines[1+nV]); // number of edges
var nF = parseInt(lines[2+nV+nE]); // number of faces
var vertices = lines.slice(1,1+nV).map(function(line) {
var d = line.split("\t").map(parseFloat);
return {
x: d[0],
y: d[1],
z: d[2],
w: d[3],
}
});
var edges = lines.slice(2+nV,2+nV+nE).map(function(line) {
var d = line.replace("\s","").split("\t").map(function(vertex) { return parseInt(vertex); });
return [d[0], d[1]];;
});
var faces = lines.slice(3+nV+nE,3+nV+nE+nF).map(function(line) {
var d = line.replace("\s","").split("\t").map(function(edge) { return parseInt(edge); });
return d;
});
return [vertices,edges,faces]
};
/* End methods. */
/* Begin helper routines. */
function mouseCoords(e, element) { // http://answers.oreilly.com/topic/1929-how-to-use-the-canvas-and-draw-elements-in-html5/
var x;
var y;
if (e.pageX || e.pageY) {
x = e.pageX;
y = e.pageY;
}
else {
x = e.clientX + document.body.scrollLeft + document.documentElement.scrollLeft;
y = e.clientY + document.body.scrollTop + document.documentElement.scrollTop;
}
x -= element.offsetLeft;
y -= element.offsetTop;
return { 'x': x, 'y': y };
}
/* End helper routines. */
})(window.Hypersolid = window.Hypersolid || {});
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8" />
<title>Dodecaplex</title>
<style>
html, body {
background: #fff;
color: #555;
width: 960px;
margin: 0 auto;
font-family: sans-serif;
}
canvas {
border: none;
margin: 0 280px;
}
#hypercube-options {
margin: 10px 0 0 85px;
}
label {
margin: 0 20px;
font-size: 15px;
cursor: pointer;
}
</style>
<script src="https://cdnjs.cloudflare.com/ajax/libs/d3/3.5.5/d3.min.js"></script>
<script type="text/javascript" src="hypersolid.js"></script>
</head>
<body>
<canvas id="octaplex-canvas">Unfortunately, your browser does not support coolness.</canvas>
<form id="hypercube-options">
<label><input type="checkbox" name="rotate_xy" />Rotate xy</label>
<label><input type="checkbox" name="rotate_yz" />Rotate yz</label>
<label><input type="checkbox" name="rotate_xz" />Rotate xz</label>
<label><input type="checkbox" name="rotate_xw" />Rotate xw</label>
<label><input type="checkbox" name="rotate_yw" />Rotate yw</label>
<label><input type="checkbox" name="rotate_zw" />Rotate zw</label>
</form>
<script type="text/javascript">
d3.text("120cell.ascii", function(err, text) {
var data = Hypersolid.parseVEF(text);
function NewShape() {};
Hypersolid.NewShape = function() {
return new NewShape();
};
NewShape.prototype = Hypersolid.Shape(data[0],data[1],data[2]);
var octaplex = Hypersolid.NewShape();
var octaplexView = Hypersolid.Viewport(octaplex, document.getElementById('octaplex-canvas'), {
width: 440,
height: 440,
scale: 2,
lineWidth: 2.5,
lineJoin: 'round'
});
octaplexView.draw();
// animation
options = document.getElementById('hypercube-options');
function render() {
if (options) {
checkboxes = options.getElementsByTagName('input');
}
if (options.rotate_xz.checked) {
rotate("xz", 0.008);
}
if (options.rotate_yz.checked) {
rotate("yz", 0.008);
}
if (options.rotate_xw.checked) {
rotate("xw", 0.008);
}
if (options.rotate_yw.checked) {
rotate("yw", 0.008);
}
if (options.rotate_xy.checked) {
rotate("xy", 0.008);
}
if (options.rotate_zw.checked) {
rotate("zw", 0.008);
}
};
function rotate(plane, x) {
octaplex.rotate(plane, x);
octaplexView.draw();
};
window.requestAnimFrame = window.requestAnimationFrame ||
window.webkitRequestAnimationFrame ||
window.mozRequestAnimationFrame ||
window.oRequestAnimationFrame ||
window.msRequestAnimationFrame ||
function( callback ){
window.setTimeout(callback, 1000 / 60);
};
(function animloop(){
requestAnimFrame(animloop);
render();
})();
});
</script>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment