Code for Dextro.org algorithmic image "H014" (internal "H016") written by Walter Gorgosilits (Dextro.org) between 1994 and 2017. For research only. No commercial or secret service/clandestine use. H016 int a = 1024; int b = 968; int m3 = 1; int num1 = 20; int num2 = 100000; int m = 0; float[] xli = new float[num2]; float[] yli = new float[num2]; float[] d1li = new float[num1]; float[] pxli = {593.46, 601.9, 299.68, 402.07, 1022.47, 222.8, 785.85, 899.82, 279.21, 504.24, 509.38, 564.85, 732.8, 494.14, 530.59, 741.98, 158.12, 327.13, 493.56, 991.98}; float[] pyli = {479, 140.01, 277.59, 436.61, 337.91, 365.87, 722.26, 445.89, 168.37, 538.59, 762.85, 315.38, 371.73, 340.24, 364.68, 456.22, 318.3, 617.37, 497.87, 290.86}; float x1, y1, x2, y2, xx, yy, xxc, yyc, ff, fff, ffx, ffy, V2, V3, d1, d2, d3, dx, dy, xxp, yyp, dd, w, xx2, yy2, xx3, yy3; int ble = 5; int m4 = 0; float FOK; int SEGMENTx = 0; int SEGMENTy = 0; void setup() {size(3840, 2400, P2D); background(0); frameRate(100); stroke(255, ble); smooth(); for (int i = 0; i < num2; i++) {xli[i] = random(a)/3 -170; yli[i] = random(b) -400;} for (int i = 0; i < num1/2; i++) {x1 = pxli[2*i]; y1 = pyli[2*i]; x2 = pxli[2*i+1]; y2 = pyli[2*i+1]; dx = abs(x1 -x2); dy = abs(y1 -y2); d1 = sqrt(dx*dx +dy*dy); if (d1 == 0) {d1 = 1;} d1li[i] = d1;}} void draw() {m4 = m4 +1; if (m4 == 8) {m4 = 0;} FOK = m4*0.25 +0.25; m = m +1; if (m == 8) {m = 0; m3 = m3 +1; for (int i = 0; i < num2; i++) {xli[i] = random(a)/3 -170; yli[i] = random(b) -400;}} for (int i = 0; i < num1/2; i++) {x1 = pxli[2*i]; y1 = pyli[2*i]; x2 = pxli[2*i+1]; y2 = pyli[2*i+1]; d1 = d1li[i]; for (int n = 0; n < num2; n++) {xx = xli[n]; yy = yli[n]; xxc = xx; yyc = yy; dx = abs(xx -x1); dy = abs(yy -y1); d2 = sqrt(dx*dx +dy*dy); dx = abs(xx -x2); dy = abs(yy -y2); d3 = sqrt(dx*dx +dy*dy); ff = min(d1, d2, d3); if (ff == 0) {ff =0.001;} xx = xx -(xx -x2)/ff; yy = yy -(yy -y2)/ff; fff = d2/10; xxp = xx +cos(d3*PI/10)*tan(abs(fff)/10); yyp = yy +sin(d3*PI/10)*tan(abs(fff)/10); ff = d2/d3*10; if (ff == 0) {ff = 0.001;} xx2 = tan(ff/20)*200; if (d2 == 0) {d2 = 0.001;} ff = d3/d2*10; if (ff == 0) {ff = 0.001;} yy2 = tan(ff)*200; xx3 = tan(d3/20)*200; yy3 = tan(d3/3)*200; ff = min(10, atan(min(xx2, yy2))*FOK); if (ff == 0) {ff = 0.001;} xx = xx +(xx -xxp)/ff; ff = min(30, atan(min(yy3, xx3))*FOK); if (ff == 0) {ff = 0.001;} yy = yy +(yy -yyp)/ff; if (i == num1/2 -1) {ffx = ((yy-296)*6 +1000)*1.6; ffy = ((xx-573)*6 +1000)*1.6 +160; stroke(255 -m4*255/16 -dist(xx, yy, xxc, yyc), 255 -m4*255/16 -dist(xx, yy, xxc, yyc), 255, ble); point((ffx/2.7 +700+1000)*2, (ffy/2.7 +700+1000)*2);} xli[n] = xx +sin(yy*PI/180*d2/100); yli[n] = yy +cos(xx*PI/180*d2/100);}} if (m3 == 400){saveFrame(); m3 = 0; m = 0; background(0); SEGMENTx = SEGMENTx +1; if (SEGMENTx == 7) {SEGMENTx = 0; if (SEGMENTy == 5) {SEGMENTy = 0;}}}}