POV-Ray 3.5 source bicubic.pov:
global_settings { assumed_gamma 1.0 }
background { rgb 1 }
camera {
location <3.2,5,-8>
look_at <3,-1.5,1.5> angle 55
up y right 2*x
}
light_source {<500,500,-500> rgb 1 }
#declare B11=<0,0,3>; #declare B12=<1,0,3>; //
#declare B13=<2,0,3>; #declare B14=<3,0,3>; // row 1
#declare B21=<0,0,2>; #declare B22=<1,0,2>; //
#declare B23=<2,0,2>; #declare B24=<3,1,2>; // row 2
#declare B31=<0,0,1>; #declare B32=<1,0,1>; //
#declare B33=<2.5,-1,1>; #declare B34=<3.15,.25,1>; // row 3
#declare B41=<0,.25,0>; #declare B42=<1,0,0>; //
#declare B43=<2,0,0>; #declare B44=<3,.25,0>; // row 4
bicubic_patch {
type 1 flatness 0.001
u_steps 4 v_steps 4
uv_vectors
<0,0> <1,0> <1,1> <0,1>
B11, B12, B13, B14
B21, B22, B23, B24
B31, B32, B33, B34
B41, B42, B43, B44
uv_mapping
texture {
pigment {
checker
color rgbf <1,1,1,0.5>
color rgbf <0,0,1,0.7>
scale 1/3
}
finish {phong 0.6 phong_size 20}
}
no_shadow
}
#declare R12=B14+(B14-B13);
#declare R22=B24+(B24-B23);
#declare R32=B34+(B34-B33);
#declare R42=B44+(B44-B43);
#declare R11=B14;
#declare R13=<5,0,3>; #declare R14=<6,0,3>; // row 1
#declare R21=B24;
#declare R23=<5,0,2>; #declare R24=<6,0,2>; // row 2
#declare R31=B34;
#declare R33=<5,0,1>; #declare R34=<6,0,1>; // row 3
#declare R41=B44;
#declare R43=<5,0,0>; #declare R44=<6,0,0>; // row 4
bicubic_patch {
type 1 flatness 0.001
u_steps 4 v_steps 4
uv_vectors
<0,0> <1,0> <1,1> <0,1>
R11, R12, R13, R14
R21, R22, R23, R24
R31, R32, R33, R34
R41, R42, R43, R44
uv_mapping
texture {
pigment {
checker
color rgbf <1,1,1,0.5>
color rgbf <1,0,0,0.7>
scale 1/3
}
finish {phong 0.6 phong_size 20}
}
no_shadow
}
#declare G11=B41; #declare G12=B42; //
#declare G13=B43; #declare G14=B44; // row 1
#declare G21=B41+(B41-B31); #declare G22=B42+(B42-B32); //
#declare G23=B43+(B43-B33); #declare G24=B44+(B44-B34); // row 2
#declare G31=<0,0,-2>; #declare G32=<1,0,-2>; //
#declare G33=<2,0,-2>; #declare G34=<3,2,-2>; // row 3
#declare G41=<0,0,-3>; #declare G42=<1,0,-3>; //
#declare G43=<2,0,-3>; #declare G44=<3,0,-3>; // row 4
bicubic_patch {
type 1 flatness 0.001
u_steps 4 v_steps 4
uv_vectors
<0,0> <1,0> <1,1> <0,1>
G11, G12, G13, G14
G21, G22, G23, G24
G31, G32, G33, G34
G41, G42, G43, G44
uv_mapping
texture {
pigment {
checker
color rgbf <1,1,1,0.5>
color rgbf <0,1,0,0.7>
scale 1/3
}
finish {phong 0.6 phong_size 20}
}
no_shadow
}
#declare Y11=R41; #declare Y12=R42;
#declare Y13=R43; #declare Y14=R44; // row 1
#declare Y21=R41+(R41-R31); #declare Y22=R42+(R42-R32);
#declare Y23=R43+(R43-R33); #declare Y24=R44+(R44-R34); // row 2
#declare Y31=G34; #declare Y32=G34+(G34-G33);
#declare Y33=<5,0,-2>; #declare Y34=<6,0,-2>; // row 3
#declare Y41=G44; #declare Y42=G44+(G44-G43);
#declare Y43=<5,0,-3>; #declare Y44=<6,0,-3>; // row 4
bicubic_patch {
type 1 flatness 0.001
u_steps 4 v_steps 4
uv_vectors
<0,0> <1,0> <1,1> <0,1>
Y11, Y12, Y13, Y14
Y21, Y22, Y23, Y24
Y31, Y32, Y33, Y34
Y41, Y42, Y43, Y44
uv_mapping
texture {
pigment {
checker
color rgbf <1,1,1,0.5>
color rgbf <1,1,0,0.7>
scale 1/3
}
finish {phong 0.6 phong_size 20}
}
no_shadow
}
#declare Points=array[9]{B33,B34,R32,B43,B44,R42,G23,G24,Y22}
#declare I=0;
#while (I<9)
sphere {
Points[I],0.1
no_shadow
pigment{
#if (I=4)
color rgb <1,0,0>
#else
color rgb <0,1,1>
#end
}
}
#declare I=I+1;
#end
union {
cylinder {B33,B34,0.04} cylinder {B34,R32,0.04}
cylinder {B43,B44,0.04} cylinder {B44,R42,0.04}
cylinder {G23,G24,0.04} cylinder {G24,Y22,0.04}
cylinder {B33,B43,0.04} cylinder {B43,G23,0.04}
cylinder {B34,B44,0.04} cylinder {B44,G24,0.04}
cylinder {R32,R42,0.04} cylinder {R42,Y22,0.04}
no_shadow
pigment {color rgb <1,1,0>}
}