// Sample scene. 'yuqk matrix.pov +w800 +h800 +p +mv3.8' global_settings { assumed_gamma 1.0 } #declare VarOrthoMult = 3.0/max(image_width/image_height,image_height/image_width); #declare Camera01z = camera { orthographic location <0,0,-2> direction z right VarOrthoMult*x*max(1,image_width/image_height) up VarOrthoMult*y*max(1,image_height/image_width) } #declare FnMx = function { transform { #if (0) matrix < 1.0, 1.0, 0.0, // Shear in y by x 'transform' 0.0, 1.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0> matrix < 1.0, 0.0, 0.0, // Shear in x by y 'transform' 0.9, 1.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0> #else matrix < // Singular matrix error if 1x1 shear 1.0, 1.0, 0.0, // Shear in y 'transform' 0.9, 1.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0> #end inverse // Match pure checker pattern form below } } // checker block pattern returns 0 or 1 (raw_wave not needed) #declare FnChkr = function { pattern {checker} } plane { -z 0 pigment { #if (0) function { FnChkr(FnMx(x,y,z).x, FnMx(x,y,z).y, FnMx(x,y,z).z) } scale 1/6 #else checker #if (0) matrix < 1.0, 1.0, 0.0, // Shear in y by x 0.0, 1.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0> matrix < 1.0, 0.0, 0.0, // Shear in x by y 0.9, 1.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0> #else matrix < // Singular matrix parse error if shear 1x1 1.0, 1.0, 0.0, // Shear in y by x 0.9, 1.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0> #end scale 1/6 #end } finish { emission 1 } } camera { Camera01z }