<html> <head> <title>Box by rotation</title> <script type="text/javascript" src="nt3d.js"></script> <script type="text/javascript"> function box_by_rotation(size) { 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>