Code for Dextro.org algorithmic image "H013" written by Walter Gorgosilits (Dextro.org) between 1994 and 2017. For research only. No commercial or malicious use. 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.90, 299.68, 402.07, 1022.47, 222.80, 785.85, 899.82, 279.21, 504.24, 509.38, 564.85, 732.80, 494.14, 530.59, 741.98, 158.12, 327.13, 493.56, 991.9800}; float[] pyli = {479.00, 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.30, 617.37, 497.87, 290.8600}; 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;//, m33; int ble = 5; int m4 = 0; float FOK; int SEGMENTx = 0; int SEGMENTy = 0; void setup() {size(3080, 4800, P2D); background(0); frameRate(100); stroke(255, ble); smooth(); for (int i = 0; i < num2; i++) {xli[i] = random(a); yli[i] = random(b);} 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)/2; yli[i] = random(b)/2;}} 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; if ((ffx < 0) || (ffx > 1300)) {xx = random(a/2)/2 +300;} ffx = ffx*1.6; ffy = ((xx-573)*6 +1000)*1; if ((ffy < 0) || (ffy > 640)) {yy = random(b/2)/2 +100;} ffy = ffy*1.6 +160; stroke(255 -m4*255/16, 255 -m4*255/16, 255, ble); point(ffx/2.7*12 -SEGMENTx*3080, (ffy/2.7 +700)*12 -SEGMENTy*4800);} xli[n] = xx +sin(yy*PI/180*d2/100); yli[n] = yy +cos(xx*PI/180*d2/100);}} if (m3 == 100*3*3){saveFrame("X_#################.tif"); m3 = 0; m = 0; background(0); SEGMENTx = SEGMENTx +1; if (SEGMENTx == 3) {SEGMENTx = 0;}}}