Code for Dextro.org algorithmic image "H015" written by Walter Gorgosilits (Dextro.org) in 2005 and 2018. For research only. No commercial use. H015 int a = 1920; int b = 1080; int num = 1; int pnum = 10; float xx = 50; float yy = 1100; float ww = 20; float ss = 10; float[] pxli = new float[pnum]; float[] pyli = new float[pnum]; float xxc, yyc, xd, yd, px, py, dd, pw, ddd, dmin; int welches, welches_0; float xstart = 0; float ystart = 0; int m = 0; float FAK = 16; float m6_fak = 174; float m6 = 174; String m6_; float FIK; float FOK = 480; float mww = 87; int SEGMENTx = 0; int SEGMENTy = 0; int PIPI = 1; void setup() { size(3840, 2160, P2D); background(0); frameRate(990); smooth(); stroke(255, 200); pxli[0] = 1195.5654; pxli[1] = 269.38135; pxli[2] = 1207.12; pxli[3] = 694.8529; pxli[4] = 881.7024; pxli[5] = 393.77234; pxli[6] = 20.430908; pxli[7] = 954.74; pxli[8] = 1127.3638; pxli[9] = 869.24805; } void draw() { for (int i = 0; i < a*130*32; i++) { machmach(); } } void machmach() { for (int n = 0; n < 10; n++) { xxc = xx; yyc = yy; xx = xx +cos((ww+ss/30)*PI/180)*ss; yy = yy +sin((ww+ss/30)*PI/180)*ss; dmin = 10000; for (int i = 0; i < pnum; i++) { px = pxli[i]; py = pxli[i]; xd = (xx -px); yd = (yy -py); dd = sqrt(xd*xd +yd*yd); if (xd == 0) {xd = 0.0001;} if ((xd > 0) && (yd > 0)) {pw = atan(yd/xd)*(180/PI) +180;} if ((xd < 0) && (yd > 0)) {pw = atan(yd/xd)*(180/PI) +360;} if ((xd < 0) && (yd < 0)) {pw = atan(yd/xd)*(180/PI);} if ((xd > 0) && (yd < 0)) {pw = atan(yd/xd)*(180/PI) +180;} pw = pw +30; ddd = max(1, (100/dd*dd)); xx = xx +cos(pw*PI/180)*ddd; yy = yy +sin(pw*PI/180)*ddd; if (dd < dmin) { FIK = max(1, dmin -dd); dmin = dd; welches = max(1, min(10, i +1)); } } xd = (xxc -xx); yd = (yyc -yy); ss = sqrt(xd*xd +yd*yd) *0.8; if (xd == 0) {xd = 0.0001;} if ((xd > 0) && (yd > 0)) {ww = atan(yd/xd)*(180/PI) +180;} if ((xd < 0) && (yd > 0)) {ww = atan(yd/xd)*(180/PI) +360;} if ((xd < 0) && (yd < 0)) {ww = atan(yd/xd)*(180/PI);} if ((xd > 0) && (yd < 0)) {ww = atan(yd/xd)*(180/PI) +180;} } if (welches == 1) {stroke(min(255, 155+ss), 100, 170, max(0, min(255, 255/FAK/FIK*FOK)));} if (welches == 2) {stroke(255, 100, 0, max(0, min(255, 2550000/FAK/FIK*FOK)));} if (welches == 3) {stroke(min(255, 155+ss), 80, 100, max(0, min(255, 2550000/FAK/FIK*FOK)));} if (welches == 4) {stroke(255, 100, 100, max(0, min(255, 255/FAK/FIK*FOK)));} if (welches == 5) {stroke(255 -random(50), 255 -random(20), 255 -random(10), max(0, min(255, 255/FAK/FIK*FOK)));} if (welches == 6) {stroke(255, 100, 155, max(0, min(255, 255/FAK*2/FIK*FOK)));} if (welches == 7) {stroke(255, 255, 0, max(0, min(255, 255/FAK/FIK*FOK)));} if (welches == 8) {stroke(min(255, ss), 0, 0, max(0, min(255, 255/FAK/FIK*FOK)));} if (welches == 9) {stroke(255, 255, 255, max(0, min(255, 255/FAK/FIK*FOK)));} if (welches == 10) {stroke(min(255, 50+ss), 45, 44, max(0, min(255, 255/FAK/FIK*FOK)));} point(xstart*8 -SEGMENTx*3840, ystart*8 -SEGMENTy*2160); xstart = xstart +1/FAK; if (xstart > a) { xstart = 0; ystart = ystart +1/FAK; if (ystart > b) { saveFrame(PIPI+".tif"); {exit(); } SEGMENTx = SEGMENTx +1; if (SEGMENTx == 4) { SEGMENTx = 0; SEGMENTy = SEGMENTy +1; if (SEGMENTy == 4) { SEGMENTy = 0; } } ss = 10; background(0); xstart = 0; ystart = 0; } } xx = xstart; yy = ystart; ss = ss +1000; ww = 20 +mww; }