From: Scott Worley <ScottWorley@ScottWorley.com> Date: Tue, 18 Dec 2012 09:34:16 +0000 (-0800) Subject: Triangle fans X-Git-Url: http://git.scottworley.com/nt3d/commitdiff_plain/0ab5ca18fc7c4d26a3a7cf30cd902d2ebc190f4d Triangle fans --- diff --git a/box_by_trianglefan.html b/box_by_trianglefan.html new file mode 100644 index 0000000..1972560 --- /dev/null +++ b/box_by_trianglefan.html @@ -0,0 +1,27 @@ +<html> + <head> + <title>Box by trianglefan</title> + <script type="text/javascript" src="nt3d.js"></script> + <script type="text/javascript"> + function box_by_trianglefan(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 z = [0, 0, size]; + var xy = [size, size, 0 ]; + var xz = [size, 0, size]; + var yz = [0, size, size]; + var xyz = [size, size, size]; + return [].concat( + nt3d.trianglefan([origin, x, xz, z, yz, y, xy, x]), + nt3d.trianglefan([xyz, yz, z, xz, x, xy, y, yz])); + } + var params = [["Size", 1]]; + </script> + </head> + <body onload="nt3d.framework(box_by_trianglefan, params)"> + <h1>Box by trianglefan</h1> + <p>Make a box with two triangle fans from opposite corners.</p> + </body> +</html> diff --git a/nt3d.js b/nt3d.js index ba2315f..623c0f1 100644 --- a/nt3d.js +++ b/nt3d.js @@ -23,6 +23,13 @@ nt3d = { return this.triangle(a, b, c).concat( this.triangle(c, d, a)); }, + trianglefan: function(fan) { + var result = []; + for (var i = 2; i < fan.length; i++) { + result.push(fan[0], fan[i-1], fan[i]); + } + return result; + }, quadstrip: function(strip) { if (strip.length % 2 != 0) { alert("quadstrip length not divisble by 2!");