3d/pr/posbi/posbi.pov

60 lines
1.1 KiB
POVRay

#local RND1 = seed(1);
#local R1 = 1000;
#local R2 = 0;
#declare posbi0 =
box {
<-R1, -R1, -R1>, <R1, R1, R1>
texture { pigment { color rgb <1, 1, 1> } }
}
#declare Foo = function(r, lo, hi) { r + lo + hi }
#declare rand2 = function(R, Lo, Hi) { R * (Hi - Lo) - Lo }
#declare posbi1 = union {
object { posbi0 }
#local S = 200;
#local X = -2*R1;
#while (X <= 2*R1)
#local Y = -2*R1;
#while (Y <= 2*R1)
#local P = trace(posbi0, <X, Y, 2*R1>, -<X, Y, 2*R1>);
#switch (rand(RND1) * 3)
#range(0, 1)
box {
<-1, -1, -1>
<+1, +1, +1>
scale S/2
#if (1)
matrix <
rand2(rand(RND1), -0.5, 0.5), rand2(rand(RND1), -0.5, 0.5), rand2(rand(RND1), -0.5, 0.5),
rand2(rand(RND1), -0.5, 0.5), rand2(rand(RND1), -0.5, 0.5), rand2(rand(RND1), -0.5, 0.5),
rand2(rand(RND1), -0.5, 0.5), rand2(rand(RND1), -0.5, 0.5), rand2(rand(RND1), -0.5, 0.5),
0, 0, 0
>
#end
translate P
texture { pigment { color rgb <1, 0, 0> } }
}
#break
#end
#local Y = Y + 2*S; // YYY
#end
#local X = X + 2*S; // XXX
#end
}
#declare posbi =
object {
posbi1
}