source: main/trunk/model-sites-dev/von-sparql/js/paper/examples/Rasters/PhyllotaxisRaster.html@ 28914

Last change on this file since 28914 was 28914, checked in by ak19, 10 years ago

Supporting javascript libraries and bespoke code written by Steffan to support the von-sparql user interface

File size: 24.1 KB
Line 
1<!DOCTYPE html>
2<html>
3<head>
4 <meta charset="UTF-8">
5 <title>Phyllotaxis Raster</title>
6 <link rel="stylesheet" href="../css/style.css">
7 <script type="text/javascript" src="../../dist/paper.js"></script>
8 <script type="text/paperscript" canvas="canvas">
9 // Example inspired by: 'Phyllotactic Spirals' by Ken Frederick
10 // http://scriptographer.org/scripts/general-scripts/phyllotactic-spirals/
11
12 // Further reading:
13 // http://en.wikipedia.org/wiki/Phyllotaxis
14 var raster;
15 var values = {
16 // The amount of paths to produce:
17 amount: 200
18 };
19 // Create a raster object, using the image
20 var raster = new Raster('sunflower');
21
22 // Transform the raster so it fills the bounding rectangle
23 // of the view:
24 raster.fitBounds(view.bounds, true);
25
26 // Hide the raster:
27 raster.visible = false;
28
29 // Create the group of circle shaped paths and scale it up a bit:
30 var group = createPhyllotaxis(values.amount);
31 group.scale(3);
32
33 function createPhyllotaxis(amount) {
34 var group = new Group();
35 // The Golden Angle (http://en.wikipedia.org/wiki/Golden_angle)
36 var rotation = 137.51;
37 var spacing = 5;
38 for (var i = 1; i <= amount; i++) {
39 var radius = 8 - (i / amount * 4);
40 new Path.Rectangle({
41 point: {
42 length: spacing * Math.sqrt(i),
43 angle: i * rotation
44 },
45 size: new Size(0.95, 0.7) * radius,
46 radius: new Size(radius / 4),
47 parent: group
48 }).rotate(i * rotation + 45);
49 }
50 return group;
51 }
52
53 function colorizePaths(offset) {
54 for (var i = offset % 50, l = group.children.length; i < l; i += 50) {
55 var path = group.children[i];
56 // Set the path's fill color to the average color of the
57 // raster pixels that fall within it:
58 path.fillColor = raster.getAverageColor(path);
59 }
60 }
61
62 var position = view.center;
63 function onMouseMove(event) {
64 position = event.point;
65 }
66
67 // Whenever the window is resized, we need to fit the raster
68 // in the bounding rectangle of the view again:
69 function onResize() {
70 raster.fitBounds(view.bounds, true);
71 }
72
73 function onFrame(event) {
74 // 1/4th of the difference between the center position of
75 // the group and the current position of the mouse:
76 var delta = (position - group.position) / 4;
77 // If the length of the delta vector (the distance) is bigger
78 // than 1, reposition the group:
79 if (delta.length > 1)
80 group.position += delta;
81 // Rotate the group of paths by 1 degree:
82 group.rotate(1);
83 // Rotate each path in the group by 2 degrees:
84 for (var i = 0, l = group.children.length; i < l; i++) {
85 group.children[i].rotate(2);
86 }
87 // Colorize the paths every other frame:
88 colorizePaths(event.count);
89 }
90 </script>
91</head>
92<body style="background:black">
93 <img width="415" height="492" id="sunflower" style="display: none;" src="data:image/jpeg;base64,/9j/4QAYRXhpZgAASUkqAAgAAAAAAAAAAAAAAP/sABFEdWNreQABAAQAAAAOAAD/4QMraHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLwA8P3hwYWNrZXQgYmVnaW49Iu+7vyIgaWQ9Ilc1TTBNcENlaGlIenJlU3pOVGN6a2M5ZCI/PiA8eDp4bXBtZXRhIHhtbG5zOng9ImFkb2JlOm5zOm1ldGEvIiB4OnhtcHRrPSJBZG9iZSBYTVAgQ29yZSA1LjAtYzA2MCA2MS4xMzQ3NzcsIDIwMTAvMDIvMTItMTc6MzI6MDAgICAgICAgICI+IDxyZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyI+IDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bXA6Q3JlYXRvclRvb2w9IkFkb2JlIFBob3Rvc2hvcCBDUzUgTWFjaW50b3NoIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOkUwOTE0MUU3N0E0NzExRTA5QTJDQzYxQjVCODAxRjgzIiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOkUwOTE0MUU4N0E0NzExRTA5QTJDQzYxQjVCODAxRjgzIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6RTA5MTQxRTU3QTQ3MTFFMDlBMkNDNjFCNUI4MDFGODMiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6RTA5MTQxRTY3QTQ3MTFFMDlBMkNDNjFCNUI4MDFGODMiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz7/7gAOQWRvYmUAZMAAAAAB/9sAhAATDw8YERgmFhYmMCQdJDAsJSQk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">
94 <canvas id="canvas" resize></canvas>
95</body>
96</html>
Note: See TracBrowser for help on using the repository browser.