X-Git-Url: http://git.scottworley.com/nt3d/blobdiff_plain/bdd7bcc0908b9eb688223b1cc48dbc80b4ef3556..3fdffa6cef1752afc1143dac2d8b9966fc91cc2d:/medusa.html diff --git a/medusa.html b/medusa.html index da807f5..0576312 100644 --- a/medusa.html +++ b/medusa.html @@ -3,13 +3,16 @@ <title>Medusa</title> <script type="text/javascript" src="nt3d.js"></script> <script type="text/javascript"> - function finger(params, finger_crosssection, ring_radius, finger_angle) { + function finger(params, finger_crosssection, ring_num, ring_radius, finger_angle) { var path = []; + var twirl_amplitute = Math.cos((ring_num * 2 * Math.PI) / params.finger_twirl_period); + var twirl_angle = twirl_amplitute * params.finger_twirl_distance / (ring_radius * 2 * Math.PI); for (var finger_point = 0; finger_point <= params.finger_points; finger_point++) { - var angle = (finger_angle + params.finger_twirl * finger_point / params.finger_points) * 2 * Math.PI; + var finger_progress = finger_point / params.finger_points; + var angle = (finger_angle + twirl_angle * finger_progress) * 2 * Math.PI; var x = ring_radius * Math.cos(angle); var y = ring_radius * Math.sin(angle); - path.push([x, y, params.finger_height * finger_point / params.finger_points]); + path.push([x, y, params.finger_height * finger_progress]); } return nt3d.extrude(path, finger_crosssection, [0, 0, 1], nt3d.pathnormals_from_point(path, [0, 0, 0])); } @@ -21,7 +24,7 @@ var num_fingers = Math.round((ring_radius * 2 * Math.PI) / params.finger_spacing); for (var finger_num = 0; finger_num < num_fingers; finger_num++) { var finger_angle = finger_num / num_fingers; - fingers = fingers.concat(finger(params, finger_crosssection, ring_radius, finger_angle)); + fingers = fingers.concat(finger(params, finger_crosssection, ring_num, ring_radius, finger_angle)); } } @@ -34,7 +37,8 @@ ["finger_radius", 3], ["finger_faces", 3], ["finger_points", 20], - ["finger_twirl", .1, "Finger Twirl (in turns)"], + ["finger_twirl_distance", 50], + ["finger_twirl_period", 2, "Finger Twirl Period (1=same, 2=alternating)"], ["finger_height", 100]]; </script> </head>