User:Le Forgeron/vault/RefImgCameraViewOmnimax

From POV-Wiki
Jump to navigation Jump to search

RefImgCameraViewOmnimax.png

#version 3.7;
global_settings {assumed_gamma 1 }

camera {
orthographic
location -(image_height+image_width)*z
direction z
up image_height*y
right image_width*x
rotate 45*x
rotate -45*y
}

#include "colors.inc"
background { White }
#default { texture { finish { ambient 1 diffuse 0 } } }

#declare Text_size = image_height / 21;
#declare Vertical_down_space = -Text_size*y*1.7; 
#declare Vertical_up_space = Text_size*y*.6; 
#declare Point_size = image_height / 82;
#declare Line_size = image_height / 482;

#macro Label(te,pos,col)
text { ttf "ttf-dejavu/DejaVuSerif.ttf" te 0.1,0 
texture { pigment { colour col } }
translate -strlen(te)*0.23*x
rotate 45*x
rotate -45*y
scale Text_size translate pos }
#end

#macro Small_Label(te,pos,col)
text { ttf "ttf-dejavu/DejaVuSerif.ttf" te 0.1,0 
texture { pigment { colour col } }
rotate 45*x
rotate -45*y
scale Text_size*2/3 translate pos }
#end

#macro Arrow(pos,dir)
#local k=vlength(dir);
cone { pos,0,pos-Text_size*dir/k,Point_size }
#end
#macro Ray(pos,dir)
#local k=vlength(dir);
cone { pos,0,pos-Text_size*dir/k,Point_size texture { pigment { colour Blue } } }
#end

#declare Location = <0,0,0.-.6*image_height>;
#declare Look_at = <0,0,0.7*image_height>;
#declare Center = <0,0,0.0*image_height>;
#declare Right = <image_height/3.5,0,0>;
#declare Up = <0,image_height/3.5,0>;
sphere { Location, Point_size }
Label("location",Location+Vertical_down_space, Black)

sphere { Look_at, Point_size }
Label("look_at",Look_at+Vertical_up_space, Black)

cylinder { Location, Center , Line_size }
cylinder { Center, Look_at , Line_size texture { pigment { checker colour Black, colour White scale Text_size } } }
Arrow(Center,Center-Location)
Label("direction", Center+Vertical_up_space, Black )

cylinder { -Right*2, 2*Right, Line_size }
Label("right",Right*2+Vertical_down_space, Black)
Arrow(Right*2,Right-Center)

cylinder { -Up*2, 2*Up, Line_size }
Label("up",Up*2+Vertical_up_space, Black)
Arrow(Up*2,Up-Center)
#macro Picture(Right,Up,Location,i)
#local rr=i*vlength(Right);
intersection {
union {
sphere { Location, rr 
texture { pigment { colour rgbft 0.5 } } 
}
torus {  rr, Line_size rotate 45*x translate Location }
torus {  rr, Line_size rotate -90*x translate Location }
}
plane { -z,0 translate Location  texture { pigment { color rgbt 1 } } }
plane { -z,0 rotate -45*x translate Location  texture { pigment { color rgbt 1 } } }
}
#end
#for(i,1/4,1,1/4)
Picture(Right,Up,Location,i)
#end

/*
cylinder { Location, Right, Line_size texture { pigment { colour Red } } }
cylinder { Location, -Right, Line_size texture { pigment { colour Red } } }
Label("angle", Location+Vertical_up_space*2 ,Red)
*/
cylinder { Location, Location+(Up*2), Line_size }
cylinder { Location-Right*2, Location+Right*2, Line_size }

/*
cylinder { Location, Location+(Up+Right)*5/7, Line_size }
cylinder { Location, Location+(Up-Right)*5/7, Line_size }

cylinder { Location, Location-(Up+Right+vcross(Up,Right)/vlength(Right))*3/7, Line_size }
cylinder { Location, Location-(Up-Right+vcross(Up,Right)/vlength(Right))*3/7, Line_size }
Ray ( Location+3/5*(Up+Right), Up+Right)
Ray ( Location+3/5*(Up-Right), Up-Right)

Ray ( Location+2/5*(-Up-Right-vcross(Up,Right)/vlength(Right)), -Up-Right-vcross(Up,Right)/vlength(Right))
Ray ( Location+2/5*(-Up+Right-vcross(Up,Right)/vlength(Right)), -Up+Right-vcross(Up,Right)/vlength(Right))
*/
/* 
intersection {
disc { Location, Up, vlength(Location)/6, vlength(Location)/6-Point_size texture { pigment { colour Red } } }
plane { vcross(Up,Location+Right),0 translate Location texture { pigment { colour rgbt 1 } } }
plane { vcross(-Up,Location-Right),0 translate Location texture { pigment { colour rgbt 1 } } }
}

*/
/*
Small_Label("+1/2",Right, Black)
Small_Label("-1/2",-Right, Black)
Small_Label("+1/2",Up, Black)
Small_Label("-1/2",-Up, Black)
*/