]>
Commit | Line | Data |
---|---|---|
00406c26 SW |
1 | <html> |
2 | <head> | |
3 | <title>Medusa</title> | |
4 | <script type="text/javascript" src="nt3d.js"></script> | |
5 | <script type="text/javascript"> | |
9c6ce9fa SW |
6 | function finger(params, finger_crosssection, ring_radius, finger_angle) { |
7 | var path = []; | |
8 | for (var finger_point = 0; finger_point <= params.finger_points; finger_point++) { | |
9 | var angle = (finger_angle + params.finger_twirl * finger_point / params.finger_points) * 2 * Math.PI; | |
10 | var x = ring_radius * Math.cos(angle); | |
11 | var y = ring_radius * Math.sin(angle); | |
12 | path.push([x, y, params.finger_height * finger_point / params.finger_points]); | |
13 | } | |
14 | return nt3d.extrude(path, finger_crosssection, [0, 0, 1], nt3d.pathnormals_from_point(path, [0, 0, 0])); | |
15 | } | |
3bafa9bd SW |
16 | function medusa(params) { |
17 | var finger_crosssection = nt3d.circle(params.finger_radius, params.finger_faces); | |
00406c26 | 18 | var fingers = []; |
3bafa9bd SW |
19 | for (var ring_num = 0; ring_num < params.num_rings; ring_num++) { |
20 | var ring_radius = params.first_ring_radius + ring_num * params.ring_spacing; | |
21 | for (var finger_num = 0; finger_num < params.num_fingers; finger_num++) { | |
22 | var finger_angle = finger_num / params.num_fingers; | |
9c6ce9fa | 23 | fingers = fingers.concat(finger(params, finger_crosssection, ring_radius, finger_angle)); |
911d073b | 24 | } |
00406c26 SW |
25 | } |
26 | ||
27 | return fingers; | |
28 | } | |
3bafa9bd SW |
29 | var params = [["first_ring_radius", 20], |
30 | ["num_rings", 10], | |
31 | ["ring_spacing", 10, "Space Between Rings"], | |
32 | ["num_fingers", 5], | |
33 | ["finger_radius", 3], | |
34 | ["finger_faces", 5], | |
35 | ["finger_points", 20], | |
36 | ["finger_twirl", .1, "Finger Twirl (in turns)"], | |
37 | ["finger_height", 100]]; | |
00406c26 SW |
38 | </script> |
39 | </head> | |
40 | <body onload="nt3d.framework(medusa, params)"> | |
41 | <h1>Medusa</h1> | |
42 | <p>An artsy thing.</p> | |
43 | </body> | |
44 | </html> |