#!/bin/sh # # randslide: make random patterns # awk ' function abs(x) { return (x<0) ? x*-1 : x } function randint(n) { return int(abs(n * rand())) } function randp() { return int(abs(rand()*100)) } function randcolor() { return "color=\"rgb(" randint(255) "," randint(255) "," randint(255) ")\"" } function randop() { return "opacity=\"" randp() "\"" } function randshape(type, width, height) { printf "<%s xp=\"%d\" yp=\"%d\" wp=\"%d\" hp=\"%d\" %s %s />\n", type, randp(), randp(), randint(width), randint(height), randcolor(), randop() } function randcircle(radius) { printf "\n", randp(), randp(), randint(radius), randcolor(), randop() } function randsquare(radius) { printf "\n", randp(), randp(), randint(radius), randcolor(), randop() } function randtext(textsize) { sp = randint(textsize)+1 printf "%d\n", randp(), randp(), sp, randcolor(), randop(), sp } function randtriangle(tsize) { cx = randp() cy = randp() delta = randint(tsize) if (delta % 2 == 0) { delta = -delta } printf "\n", cx-delta, cx, cx+delta, cy, cy+delta, cy, randcolor(), randop() } function randiamond(dsize) { cx = randp() cy = randp() delta = randint(dsize) printf "\n", cx-(delta/2), cx, cx+(delta/2), cx, cy, cy+delta, cy, cy-delta, randcolor(), randop() } function randarc(asize) { radsize = randint(asize) printf "\n", randp(), randp(), radsize, radsize, randint(20), randint(300), randcolor(), randop() } function radial(radsize) { cx = randp() cy = randp() np = 5 a = 0 adiv = 360/np for (i=1; i <= np; i++) { t = a * (3.14159265/180) r = randint(radsize) rx[i] = (r * cos(t)) + cx ry[i] = (r * sin(t)) + cy a += adiv } np = 4 printf "\n", ry[np], randcolor(), randop() } BEGIN { ntimes = 400 bg="white" srand() print "" printf "", bg for (iter=0; iter < ntimes; iter++) { randshape("ellipse", 7, 10) } print "" printf "", bg for (iter=0; iter < ntimes; iter++) { randshape("rect", 7, 10) } print "" printf "", bg for (iter=0; iter < ntimes; iter++) { randcircle(10) } print "" printf "", bg for (iter=0; iter < ntimes; iter++) { randsquare(10) } print "" printf "", bg for (iter=0; iter < ntimes; iter++) { randtext(10) } print "" printf "", bg for (iter=0; iter < ntimes; iter++) { randtriangle(10) } print "" printf "", bg for (iter=0; iter < ntimes; iter++) { randiamond(10) } print "" printf "", bg for (iter=0; iter < ntimes; iter++) { randarc(10) } print "" printf "", bg for (iter=0; iter < ntimes; iter++) { radial(10) } print "" printf "", bg for (iter=0; iter < ntimes/3; iter++) { randarc(10) randiamond(10) randtriangle(10) randtext(10) randsquare(10) randshape("rect", 7, 10) randshape("ellipse", 7, 10) radial(10) } print "" print "" }'