#!/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 ""
}'