摘要
// Persistence of Vision Ray Tracer Scene Description File
// File: ?.pov
// Vers: 3.6
// Desc: Basic Scene Example
// Date: mm/dd/yy
// Auth: ?
//
#version 3.6;
#include "colors.inc"
global_settings {
assumed_gamma 2.1
// used in global_settings, sets an overall brightness/ambient light level in the scene
ambient_light color rgb <1,1,1>/10
}
// ----------------------------------------
camera {
location <+0.3, 0.5, -4.0> // -0.2 0.0 +0.2 // -0.3 -0.1 +0.1 +0.3
direction 1.5*z
right x*image_width/image_height
look_at <0.0, 0.0, 0.0>
}
sky_sphere {
pigment {
gradient y
color_map {
[0.0 rgb <0.6,0.7,1.0>]
[0.7 rgb <0.0,0.1,0.8>]
}
}
}
light_source {
<-50, 40, -60> // light's position (translated below)
color rgb <1, 0, 0> // light's color
}
light_source {
<50, 40, -60> // light's position (translated below)
color rgb <0, 1, 0> // light's color
}
light_source {
<0, 190, -60> // light's position (translated below)
color rgb <0, 0, 1.1> // light's color
}
// ----------------------------------------
plane {
y, -1.3
pigment { color rgb <0.7,0.5,0.3> }
}
#declare ba=5.7; //linksunten rechst oben flach
#declare bb=7.3; //linksoben rechtunten //6 , 9 , , 15
#declare bc=5.5; //links unten rechts oben steil
#declare b1=max(ba,bb,bc)+2;
#declare s=sqrt(3)/2;
/*
//tube armchair
#declare bb=bb+6; //6 , 9 , , 15
#declare r=(bb-6)/pi;
#macro ab2y(b,a) sin(a/r)*r
#end
#macro ab2x(b,a) b
#end
#macro ab2z(b,a) cos(a/r)*r -r
#end
*/
/*
//rim armchair
#declare r=(bb-6)/pi*3;
#macro ab2y(b,a) sin(a/r)*r
#end
#macro ab2x(b,a) b
#end
#macro ab2z(b,a) cos(a/r)*r -r
#end
*/
/*
//ribbon
#macro ab2x(a,b) a
#end
#macro ab2y(a,b) b
#end
#macro ab2z(a,b) 0
#end
*/
#declare ha=0.92;
#declare hu=1.3;
#declare hr=sqrt(ha*ha+hu*hu);
//rim zizag
#declare r=1.68;//3.135;
#macro ab2x(a,b) sin((hu*a-ha*b)/hr/r)*r
#end
#macro ab2y(a,b) (ha*a+hu*b)/hr
#end
#macro ab2z(a,b) cos((hu*a-ha*b)/hr/r)*r -r
#end
/*
//ribbon
#declare r=3;//1.68;//3.135;
#macro ab2x(a,b) ((hu*a-ha*b)/hr/r)*r
#end
#macro ab2y(a,b) (ha*a+hu*b)/hr
#end
#macro ab2z(a,b) 0
#end
*/
/*
//tube zizag
#declare ba=ba+2;
#declare r=(ba*s)/pi;
#macro ab2x(a,b) sin(a/r)*r
#end
#macro ab2y(a,b) b
#end
#macro ab2z(a,b) cos(a/r)*r -r
#end
*/
// m,n -> x,y
/*
****
* *
* *
* *
****
*/
#macro kugel(m,n)
#if ( (abs(m)<ba) & (abs(n)<bb) & (abs(m+n-0.5)<bc) )
// #if (abs(m+n)<ba)
sphere{<ab2x(m+n/2,n*s),ab2y(m+n/2,n*s),ab2z(m+n/2,n*s)>,0.2}
// #end
#end
#end
#macro zylinder(m,n,m1,n1)
#if ( (abs(m)<ba) & (abs(n)<bb) & (abs(m+n-0.5)<bc) )
#if ( (abs(m1)<ba) & (abs(n1)<bb) & (abs(m1+n1-0.5)<bc) )
cylinder{<ab2x(m+n/2,n*s),ab2y(m+n/2,n*s),ab2z(m+n/2,n*s)>,<ab2x(m1+n1/2,n1*s),ab2y(m1+n1/2,n1*s),ab2z(m1+n1/2,n1*s)>,0.17}
#end
#end
#end
union{
#declare m = -b1;
#while (m <= b1)
#declare n = -b1;
#while (n <= b1)
kugel(m,n)
zylinder(m,n,m-1/3,n+2/3)
kugel(m-1/3,n+2/3)
zylinder(m-1/3,n+2/3,m-1,n+1)
zylinder(m-1/3,n+2/3,m,n+1)
#declare n = n+1; // increment our counter
#end
#declare m = m+1; // increment our counter
#end
texture {
pigment {
color rgb <1,1,1>*0.7
}
finish{
specular 0.6
}
}
scale 0.2 //08 //2
// translate 0.4*z
rotate <90,45,0>
rotate <0,90,0>
rotate <-20,0,0>
// translate z
}
许可协议
Public domainPublic domainfalsefalse
|
|
我,本作品著作权人,释出本作品至公有领域。这适用于全世界。 在一些国家这可能不合法;如果是这样的话,那么: 我无条件地授予任何人以任何目的使用本作品的权利,除非这些条件是法律规定所必需的。
|