]> git.scottworley.com Git - nt3d/blobdiff - box_by_rotation.html
Generalize rotate()
[nt3d] / box_by_rotation.html
diff --git a/box_by_rotation.html b/box_by_rotation.html
new file mode 100644 (file)
index 0000000..396c714
--- /dev/null
@@ -0,0 +1,28 @@
+<html>
+  <head>
+    <title>Box by rotation</title>
+    <script type="text/javascript" src="nt3d.js"></script>
+    <script type="text/javascript">
+      function box_by_rotation(size_as_string) {
+        var size = parseFloat(size_as_string);
+        var origin = [0,    0,    0   ];
+        var x      = [size, 0,    0   ];
+        var y      = [0,    size, 0   ];
+        var xy     = [size, size, 0   ];
+        var xy_face = nt3d.quad(origin, y, xy, x);
+       return [].concat(
+         xy_face,
+         nt3d.rotate_about_origin(xy_face, nt3d.unit([1,1,1]),  2*Math.PI/3), // yz
+         nt3d.rotate_about_origin(xy_face, nt3d.unit([1,1,1]), -2*Math.PI/3), // xz
+         nt3d.rotate(xy_face, [0.5, 0, 0.5], [0, 1, 0], Math.PI), // far xy (top)
+         nt3d.rotate(xy_face, [1, 1, 0], nt3d.unit([-1, -1, 1]),  2*Math.PI/3),  // far yz
+         nt3d.rotate(xy_face, [1, 1, 0], nt3d.unit([-1, -1, 1]), -2*Math.PI/3)); // far xz
+      }
+      var params = [["Size", 1]];
+    </script>
+  </head>
+  <body onload="nt3d.framework(box_by_rotation, params)">
+    <h1>Box by rotation</h1>
+    <p>Make a box by specifying one face, then copy-rotating it five times.</p>
+  </body>
+</html>