xxxxxxxxxx
64
let r = [2.8575757838729086, -1.1846989175557203, 2.520458789187937, -1.2847112426842715];
let nPoints = 3500;
let points = [];
let newPoints = [];
let startPoints = [];
let counter = 0;
function setup() {
createCanvas(2000, 2000);
colorMode(HSB);
background(240, 25, 12);
for (let i = 0; i < nPoints; i++) {
x = random(-2, 2);
y = random(-2, 2);
startPoints[i] = createVector(x, y);
}
points = startPoints.slice();
button = createButton('save image');
button.mousePressed(saveIMG);
}
function draw() {
for (let i = 0; i < nPoints; i++) {
let p = mapToCanvas(points[i]);
let distance = dist(p.x, p.y, width / 2, height / 2);
let maxDist = dist(0, 0, width / 2, height / 2);
let bright = map(distance, 0, maxDist, 100, 50);
let hue = map(distance, 0, maxDist, 140, 185);
stroke(hue, 80, bright, 0.2);
point(p.x, p.y);
}
for (let i = 0; i < nPoints; i++) {
append(newPoints, deJong(points[i], 0));
}
points = newPoints;
newPoints = [];
counter++;
}
function deJong(point, num) {
var newX = sin(r[0] * point.y) - cos(r[1] * point.x);
var newY = sin(r[2] * point.x) - cos(r[3] * point.y);
return createVector(newX, newY);
}
function mapToCanvas(point) {
var x = map(point.x, -2, 2, 0, width);
var y = map(point.y, -2, 2, 0, height);
return createVector(x, y);
}
function saveIMG() {
save('test.jpg');
}