/* best results with "powercaster -a5 -t0.9 _____" */
DEFINITION
output = "pix/steiner_divisor";
xleft = 0; xright = 323;
ylow = 0; yhigh = 242;
up = yaxis;
startframe = 60.000000;
endframe = 60.000000;
byframe = 1;
triple CameraView(0.0, 0.03, 0.0);
scalar gravity( -1.5 ); /* the gravitational force */
scalar mass( 1.0 ); /* the mass of the projectile */
scalar angle( 65.0 ); /* the angle of elevation of the cannon */
scalar dt( 1/30 ); /* the time increment */
scalar yelasticity( 0.6 ); /* the reflective elastic coefficient */
scalar xelasticity( 0.6 ); /* the tangential elastic coefficient */
scalar floory( -0.2 ); /* the altitude of the ground */
scalar drag( -0.1 ); /* the atmospheric drag */
scalar x(0); /* the position of the projectile */
scalar y(0);
scalar z(0);
scalar xp(0); /* position at previous iteration */
scalar yp(0);
scalar zp(0);
scalar vx(0); /* the velocity of the projectile */
scalar vy(0);
scalar vz(0);
scalar fx(0); /* the forces acting on the projectile */
scalar fy(0);
scalar fz(0);
scalar az(0); /* the acceleration of the projectile */
scalar ay(0);
scalar ax(0);
scalar xi(0); /* point of contact with floor */
scalar delta(0.03);
scalar divisor(2.0);
scalar object_size(0.05);
pc param_curve ( in = PRE_CONSTANT, out = POST_CONSTANT, cvs = (
pv( 1.0 , 0.0 , TAN_LINEAR, ( -1.0 , 0.0 ), TAN_LINEAR, ( 0.1644 , 0.98639) ),
pv( 60.0 , 354.0 , TAN_LINEAR, ( -0.1644 , -0.98639 ), TAN_LINEAR, ( 1.0 , 0.0 ) )
) );
triple Lightview#2(0.0, 0.0, 0.0);
triple Lightup#2(0.0, 0.0, 0.0);
triple Lightview#3(0.0, 0.0, 0.0);
triple Lightup#3(0.0, 0.0, 0.0);
triple Lightview(0.0, 0.0, 0.0);
triple Lightup(0.0, 0.0, 0.0);
light Light#2 ( model = spot,
active = ON,
exclusive = FALSE,
light_emission = ON,
color = (191.573456, 193.107498, 210.077713),
shadow_color = (0.0, 0.0, 0.0),
intensity = 33.720932,
force_type = OFF,
force_intensity = 1.0,
warp = OFF,
glow_type = OFF,
halo_type = OFF,
fog_type = OFF,
flare = OFF,
psys_emission = OFF,
shadow = FALSE,
soft_shadows = FALSE,
light_radius = 1.0,
shadow_samples = 2.0,
use_shadow_map = 0.0,
dropoff = 0.0,
spread = 90.0,
penumbra = 0.0,
shadow_resolution = 512,
shadow_edge_quality = 2,
fog_samples = 50,
shadow_min_depth = 0.050000,
shadow_blend_offset = 1.000000,
shine_along = forward(Lightview#2),
up_spot = forward(Lightup#2),
decay = 1.0
);
light Light#3 ( model = spot,
active = ON,
exclusive = FALSE,
light_emission = ON,
color = (247.435364, 255.0, 232.538864),
shadow_color = (0.0, 0.0, 0.0),
intensity = 39.534885,
force_type = OFF,
force_intensity = 1.0,
warp = OFF,
glow_type = OFF,
halo_type = OFF,
fog_type = OFF,
flare = OFF,
psys_emission = OFF,
shadow = FALSE,
soft_shadows = FALSE,
light_radius = 1.0,
shadow_samples = 2.0,
use_shadow_map = 0.0,
dropoff = 0.0,
spread = 90.0,
penumbra = 0.0,
shadow_resolution = 512,
shadow_edge_quality = 2,
fog_samples = 50,
shadow_min_depth = 0.050000,
shadow_blend_offset = 1.000000,
shine_along = forward(Lightview#3),
up_spot = forward(Lightup#3),
decay = 1.0
);
light Light ( model = spot,
active = ON,
exclusive = FALSE,
light_emission = ON,
color = (249.653412, 255.0, 240.466324),
shadow_color = (0.0, 0.0, 0.0),
intensity = 52.325581,
force_type = OFF,
force_intensity = 1.0,
warp = OFF,
glow_type = OFF,
halo_type = OFF,
fog_type = OFF,
flare = OFF,
psys_emission = OFF,
shadow = FALSE,
soft_shadows = FALSE,
light_radius = 1.0,
shadow_samples = 2.0,
use_shadow_map = 0.0,
dropoff = 0.0,
spread = 90.0,
penumbra = 0.0,
shadow_resolution = 512,
shadow_edge_quality = 2,
fog_samples = 50,
shadow_min_depth = 0.050000,
shadow_blend_offset = 1.000000,
shine_along = forward(Lightview),
up_spot = forward(Lightup),
decay = 1.0
);
shader DefaultShader ( model = phong,
diffuse = 1.0,
specular = (0.127907, 0.127907, 0.037113),
shinyness = 11,
reflectivity = 0.139535,
reflect_background = OFF,
color = (208.756485, 208.756485, 48.67379),
incandescence = (17.790699, 17.790699, 9.863237),
transparency = (70.075485, 79.053925, 88.911911),
shading_map = (0.0, 0.0, 0.0),
translucence = 0.0,
translucence_depth = 0.5,
opacity_depth = 0.0,
use_background_color = OFF,
matte_fraction = 0.0,
psys_emission = OFF,
glow_intensity = 0.0,
hide_glow_source = OFF,
refractive_index = 1.6,
reflection_limit = 1,
refraction_limit = 6,
shadow_level_limit = 0,
surface_width = 0.0,
transparency_shade = 0.0,
transparency_depth = 0.0,
chromatic_abberation = 0.0,
refraction_jitter = 0.0,
refraction_samples = 0,
respect_reflection_map = OFF,
use_fill_color = ON,
fill_color = (255.0, 255.0, 255.0),
u_patch_lines = 0,
v_patch_lines = 0,
density = 1.0,
elasticity = 0.707,
friction = 0.0,
drag_coeff = 0.5
);
patch sphere_patch (
udegree = 3, vdegree = 3,
doublesided = FALSE, opposite = FALSE,
subdivide = adaptive,
divisions = (2, 4),
curvature = 0.96,
uclosed = ON, shader = (DefaultShader),
casts_shadow = ON, motion_blur = OFF,
active = ON,
uknots = ( 0.0 , 1.0 , 2.0 , 3.0 , 4.0 ,
5.0 , 6.0 , 7.0 , 8.0 , 9.0 ,
10.0 , 11.0 , 12.0 ),
vknots = ( 2.0 , 2.0 , 2.0 , 3.0 , 4.0 ,
5.0 , 6.0 , 6.0 , 6.0 ),
cvs = (
(cv((0.0, 0.0, -0.5), 1.0),
cv((0.102341, -0.102341, -0.5), 1.0),
cv((0.307024, -0.307024, -0.391806), 1.0),
cv((0.434197, -0.434197, 0.0), 1.0),
cv((0.307024, -0.307024, 0.391806), 1.0),
cv((0.102341, -0.102341, 0.5), 1.0),
cv((0.0, 0.0, 0.5), 1.0) ),
(cv((0.0, 0.0, -0.5), 1.0),
cv((0.144732, 0.0, -0.5), 1.0),
cv((0.434197, 0.0, -0.391806), 1.0),
cv((0.614047, 0.0, 0.0), 1.0),
cv((0.434197, 0.0, 0.391806), 1.0),
cv((0.144732, 0.0, 0.5), 1.0),
cv((0.0, 0.0, 0.5), 1.0) ),
(cv((0.0, 0.0, -0.5), 1.0),
cv((0.102341, 0.102341, -0.5), 1.0),
cv((0.307024, 0.307024, -0.391806), 1.0),
cv((0.434197, 0.434197, 0.0), 1.0),
cv((0.307024, 0.307024, 0.391806), 1.0),
cv((0.102341, 0.102341, 0.5), 1.0),
cv((0.0, 0.0, 0.5), 1.0) ),
(cv((0.0, 0.0, -0.5), 1.0),
cv((0.0, 0.144732, -0.5), 1.0),
cv((0.0, 0.434197, -0.391806), 1.0),
cv((0.0, 0.614047, 0.0), 1.0),
cv((0.0, 0.434197, 0.391806), 1.0),
cv((0.0, 0.144732, 0.5), 1.0),
cv((0.0, 0.0, 0.5), 1.0) ),
(cv((0.0, 0.0, -0.5), 1.0),
cv((-0.102341, 0.102341, -0.5), 1.0),
cv((-0.307024, 0.307024, -0.391806), 1.0),
cv((-0.434197, 0.434197, 0.0), 1.0),
cv((-0.307024, 0.307024, 0.391806), 1.0),
cv((-0.102341, 0.102341, 0.5), 1.0),
cv((0.0, 0.0, 0.5), 1.0) ),
(cv((0.0, 0.0, -0.5), 1.0),
cv((-0.144732, 0.0, -0.5), 1.0),
cv((-0.434197, 0.0, -0.391806), 1.0),
cv((-0.614047, 0.0, 0.0), 1.0),
cv((-0.434197, 0.0, 0.391806), 1.0),
cv((-0.144732, 0.0, 0.5), 1.0),
cv((0.0, 0.0, 0.5), 1.0) ),
(cv((0.0, 0.0, -0.5), 1.0),
cv((-0.102341, -0.102341, -0.5), 1.0),
cv((-0.307024, -0.307024, -0.391806), 1.0),
cv((-0.434197, -0.434197, 0.0), 1.0),
cv((-0.307024, -0.307024, 0.391806), 1.0),
cv((-0.102341, -0.102341, 0.5), 1.0),
cv((0.0, 0.0, 0.5), 1.0) ),
(cv((0.0, 0.0, -0.5), 1.0),
cv((0.0, -0.144732, -0.5), 1.0),
cv((0.0, -0.434197, -0.391806), 1.0),
cv((0.0, -0.614047, 0.0), 1.0),
cv((0.0, -0.434197, 0.391806), 1.0),
cv((0.0, -0.144732, 0.5), 1.0),
cv((0.0, 0.0, 0.5), 1.0) ),
(cv((0.0, 0.0, -0.5), 1.0),
cv((0.102341, -0.102341, -0.5), 1.0),
cv((0.307024, -0.307024, -0.391806), 1.0),
cv((0.434197, -0.434197, 0.0), 1.0),
cv((0.307024, -0.307024, 0.391806), 1.0),
cv((0.102341, -0.102341, 0.5), 1.0),
cv((0.0, 0.0, 0.5), 1.0) ),
(cv((0.0, 0.0, -0.5), 1.0),
cv((0.144732, 0.0, -0.5), 1.0),
cv((0.434197, 0.0, -0.391806), 1.0),
cv((0.614047, 0.0, 0.0), 1.0),
cv((0.434197, 0.0, 0.391806), 1.0),
cv((0.144732, 0.0, 0.5), 1.0),
cv((0.0, 0.0, 0.5), 1.0) ),
(cv((0.0, 0.0, -0.5), 1.0),
cv((0.102341, 0.102341, -0.5), 1.0),
cv((0.307024, 0.307024, -0.391806), 1.0),
cv((0.434197, 0.434197, 0.0), 1.0),
cv((0.307024, 0.307024, 0.391806), 1.0),
cv((0.102341, 0.102341, 0.5), 1.0),
cv((0.0, 0.0, 0.5), 1.0) )
)
);
ENVIRONMENT
background (
color = (232.538864, 230.460007, 221.695068)
);
shader_glow (
,
glow_type = LINEAR_GLOW,
halo_type = LINEAR_GLOW,
auto_exposure = ON,
quality = 0.5,
threshold = 0.0,
glow_color = (100.0, 100.0, 100.0),
glow_intensity = 1.0,
glow_spread = 0.05,
glow_eccentricity = 0.1,
glow_radial_noise = 0.0,
glow_star_level = 0.0,
glow_opacity = 0.0,
halo_color = (100.0, 100.0, 100.0),
halo_intensity = 1.0,
halo_spread = 0.3,
halo_eccentricity = 0.1,
halo_radial_noise = 0.0,
halo_star_level = 0.0,
halo_lens_flare = 0.0,
rotation = 0.0,
radial_noise_frequency = 0.5,
star_points = 4.0
);
photo_effects (
,
film_grain = 0.0,
filter = (255.0, 255.0, 255.0)
);
master_light (
,
intensity = 1.860465,
light_color = (255.0, 255.0, 255.0)
);
MODEL
{
camera( /*eye = (1.0, 1.0, 1.0)*/
/* eye = (1.0 - frame/135.0, 1.0 - frame/135.0, 1.0 - frame/135.0) */
eye = (1.8, 0.0, 0.9)
,view = CameraView
,fov = (40.0),
viewport = (xleft, xright, ylow, yhigh),
aspect = ((xright-xleft)+1)/((yhigh-ylow)+1)
);
}
{
trn(-120.317893, 9.256924, -147.570633);
rot (zaxis, 205.2);
rot (yaxis, 104.1);
rot (xaxis, -1.6);
{
trn(-28.324287, -13.416588, 23.308075);
inst Light#2();
}
{
trn(-41.105949, -2.465721, 0.576248);
Lightview#2 = current_position(( 0.0, 0.0, 0.0));
}
{
trn(-57.98341, -40.685493, 114.835098);
Lightup#2 = current_position(( 0.0, 0.0, 0.0));
}
}
{
trn(14.272966, 138.957579, 211.720094);
{
trn(-21.141764, 16.729355, 2.818878);
inst Light#3();
}
{
trn(-20.036221, 0.268448, -20.155396);
Lightview#3 = current_position(( 0.0, 0.0, 0.0));
}
{
trn(-87.261337, 30.992035, 76.471954);
Lightup#3 = current_position(( 0.0, 0.0, 0.0));
}
}
{
trn(160.47639, 2.56537, 161.996174);
rot (zaxis, 34.7);
rot (yaxis, -0.7);
rot (xaxis, -0.9);
{
trn(-5.138031, -13.812805, 0.027298);
inst Light();
}
{
trn(-20.774277, -0.479225, -19.407806);
Lightview = current_position(( 0.0, 0.0, 0.0));
}
{
trn(-20.372261, -44.951378, 93.826569);
Lightup = current_position(( 0.0, 0.0, 0.0));
}
}
{
if( frame == 1.0 )
{
x = -1.0;
y = 0.0;
z = 0.0;
vx = (1.5 * cosd( angle ));
vy = (1.5 * sind( angle ));
vz = 0.0;
}
fx = (vx * drag);
fy = (vy * drag) + (gravity * mass);
fz = (vz * drag);
ax = (fx / mass);
ay = (fy / mass);
az = (fz / mass);
vx = (vx + (ax * dt));
vy = (vy + (ay * dt));
vz = (vz + (az * dt));
xp = (x+0.0);
yp = (y+0.0);
zp = (z+0.0);
x = (x + (vx * dt) + ((0.5 * ax * dt) * dt));
y = (y + (vy * dt) + ((0.5 * ay * dt) * dt));
z = (z + (vz * dt) + ((0.5 * az * dt) * dt));
if( y < floory )
{
vx = (vx * xelasticity);
vy = (-vy * yelasticity);
xi = (xp + (((x - xp) * (floory - yp)) / (y - yp)));
x = (xi + ((x - xp) * xelasticity));
y = (floory - ((y - floory) * yelasticity));
}
/*translate (x, y, z);*/
divisor = ((1.2 - 3.0)/60.0)*(frame - 1) + 3.0;
rot (yaxis, animate( param_curve, frame ));
{
for (x = -0.5; x < 0.5; x = x + delta;)
{
for (y = -0.5; y < 0.5; y = y + delta;)
{
if (((x*x) + (y*y)) != 0)
{
if (1 - (divisor*divisor*((x*x) + (y*y))) >= 0.0)
{
{
z = -x*y + (x*y*sqrt(1 - (divisor*divisor*((x*x) + (y*y)))) / (divisor * ((x*x) + (y*y))));
translate (x,y,z);
scale (object_size, object_size, object_size );
instance sphere_patch();
}
{
z = -x*y - (x*y*sqrt(1 - (divisor*divisor*((x*x) + (y*y)))) / (divisor * ((x*x) + (y*y))));
translate (x,y,z);
scale (object_size, object_size, object_size);
instance sphere_patch();
}
}
}
}
}
for (z = -0.5; z < 0.5; z = z + delta;)
{
for (y = -0.5; y < 0.5; y = y + delta;)
{
if (((z*z) + (y*y)) != 0)
{
if (1 - (divisor*divisor*((z*z) + (y*y))) >= 0.0)
{
{
x = -z*y + (z*y*sqrt(1 - (divisor*divisor*((z*z) + (y*y)))) / (divisor * ((z*z) + (y*y))));
translate (x,y,z);
scale (object_size, object_size, object_size);
instance sphere_patch();
}
{
x = -z*y - (z*y*sqrt(1 - (divisor*divisor*((z*z) + (y*y)))) / (divisor * ((z*z) + (y*y))));
translate (x,y,z);
scale (object_size, object_size, object_size);
instance sphere_patch();
}
}
}
}
}
for (x = -0.5; x < 0.5; x = x + delta;)
{
for (z = -0.5; z < 0.5; z = z + delta;)
{
if (((x*x) + (z*z)) != 0)
{
if (1 - (divisor*divisor*((x*x) + (z*z))) >= 0.0)
{
{
y = -x*z + (x*z*sqrt(1 - (divisor*divisor*((x*x) + (z*z)))) / (divisor * ((x*x) + (z*z))));
translate (x,y,z);
scale (object_size, object_size, object_size);
instance sphere_patch();
}
{
y = -x*z - (x*z*sqrt(1 - (divisor*divisor*((x*x) + (z*z)))) / (divisor * ((x*x) + (z*z))));
translate (x,y,z);
scale (object_size, object_size, object_size);
instance sphere_patch();
}
}
}
}
}
}
}