-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathsketch.js
More file actions
101 lines (84 loc) · 2.74 KB
/
sketch.js
File metadata and controls
101 lines (84 loc) · 2.74 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
//processing based code modified for p5.js
p5.disableFriendlyErrors = true;
var num = 600,
frms = 110,
z = 20;
var angle = 0,
theta = 0;
var value = 0;
function setup() {
createCanvas(windowWidth, windowHeight);
noStroke();
fill(255, 10, 100);
}
function windowResized() {
resizeCanvas(windowWidth, windowHeight);
}
function mouseClicked() {
if (value === 0) {
value = 255;
} else {
value = 0;
}
}
function draw() {
background(0);
if (value === 0) {
//fill(255,random(100),100);
fill(255, 10, 100);
translate(width / 2, height / 2);
// The amount of layers
for (var j = 20; j < 120; j += 20) {
var h = j * 2 + 5;
// The amount of shapes per layer
for (var q = 0; q < 360; q += 30) {
var x2 = sin(radians(q + h)) * j;
var y2 = cos(radians(q + h)) * j;
var d = map(dist(x2, y2, 0, 0), 0, 120, 0, 360);
push();
translate(x2, y2);
scale(map(j, 0, 180, 0.1, 0.4));
rotate(radians(-q - h));
beginShape();
// The shape, made from openprocessing.org/sketch/162912
for (var i = 0; i < 180; i += 5) {
var x = sin(radians(i)) * i / 3;
var angle = sin(radians(i + frameCount * 3 + d)) * 50;
vertex(x - angle, i * 2);
}
for (var k = 180; k > 0; k -= 5) {
x = sin(radians(k)) * k / 3;
angle = sin(radians(k + frameCount * 3 + d)) * 50;
vertex(-x - angle, k * 2);
}
endShape(CLOSE);
pop();
}
}
} else {
translate(width / 2, height / 2);
var m = height / 2;
for (i = 0; i < z; i++) {
f = (i % 2 === 0) ? [255, 10, 100] : 0;
drawThing(m - (m * .95 / z * i), f, i);
}
theta += TWO_PI / frms;
//if (frameCount<frms) saveFrame("img/image-###.gif");
}
}
function drawThing(diam, col, n) {
fill(col);
beginShape();
var d = 0;
for (var i = 0; i < num; i++) {
var offSet = PI / z * n;
var angle = TWO_PI / num * i;
var s = 0.7 + 0.4 * sin(sq(offSet) + theta + angle * 4.0);
d = 0.25 + 0.2 * pow(s, 0.8);
d += 0.08 * pow(0.5 + 0.5 + cos(4 * angle), 1.0);
var x = cos(angle) * d * diam;
var y = sin(angle) * d * diam;
vertex(x, y);
}
endShape(CLOSE);
}