TUD Organische ChemieImmelGraphicsPovray 3.5i_internalView or Print this frame onlyView or Print (this frame only)

Example Graphics

(low quality jpg-image only)
i_internal

Example file (i_internal.pov):

// Persistence of Vision Ray Tracer Scene Description File
// File: i_internal.pov
// Date: 11-04-2001
// Author: R. Smellenbergh
// Demo: showing all internal functions of the "functions.inc" to be used in isosurfaces
// This scene uses the clock to switch between functions.
// Set "initial frame" to 1 and "final frame" to 78
// Using the "subset start" and "subset end" allows to choose the desired frames
// example: all frames: start 1, end 78
// frame 14 (cushion): start 14, end 14
#if (clock_on = 0)
#warning " This demo was designed to be used with the clock: \n please read the comments in the scene's header"
#end
#include "functions.inc"
#declare AreaLightOn = off; //Specify if you want soft shadows (slower!) or not
global_settings {
assumed_gamma 1.8
noise_generator 2
}
camera {
location <0, 0, -40>
look_at <0, 0, 0>
angle 20
}
light_source {
<1000, 1000, -1200> rgb 1.3
#if (AreaLightOn=yes)
area_light <30,0,0>, <0,30,0>, 6, 6
adaptive 1
jitter
orient circular
#end
}
light_source { <0, 0, -40> rgb 0.5 shadowless } //Fill in light
background { color red 0.184314 green 0.309804 blue 0.309804 }
#declare IsoTexture =
texture { pigment { rgb <1.0, 0.8, 0.5> } finish { phong 0.6 phong_size 250 } }
#declare ContTexture =
texture { pigment { rgb 0.65 } finish { ambient 0.35 phong 1.0 phong_size 40 } }
//*** FRAME 1 ***************************************************
#if ( frame_number = 1 )
//** f_algbr_cyl1 : lathe form ************************
isosurface {
function { f_algbr_cyl1(x,y,z,1, 1.5, 1, 0, 0) }
//P0= Field Strength
//P1= Field limit
//P2= SOR switch
//P3= SOR offset
//P4= SOR angle
contained_by { sphere { 0,1.1} }
max_gradient 1.5
texture { IsoTexture }
no_shadow
scale 3 rotate x*-25 translate <3.5, -1, 0>
}
//** f_algbr_cyl1 : extruded form ************************
intersection {
isosurface {
function { f_algbr_cyl1(x,y,z,1, 1.5, 0, 0, 0) }
//P0= Field Strength
//P1= Field limit
//P2= SOR switch
//P3= SOR offset
//P4= SOR angle
contained_by { box { <-1.05, -0.4, -0.01>, <1.05, 0.4, 3> } }
max_gradient 1.2
texture { IsoTexture }
no_shadow
}
box { <-1.05, -0.4, -0.01>*0.9999, <1.05, 0.4, 3>*0.9999 texture { ContTexture } }
scale 3 rotate x*-10 translate <-3, -1, 0>
}
#end
//*** FRAME 2 ***************************************************
#if ( frame_number = 2 )
//** f_algbr_cyl2 : lathe form ************************
isosurface {
function { -(f_algbr_cyl2(x,y,z,0.3, 5, 1, 0, 0)) }
//P0= Field Strength
//P1= Field limit
//P2= SOR switch
//P3= SOR offset
//P4= SOR angle
contained_by { box { <-1.6, -0.01, -1.6>, <1.6, 2.4, 1.6> } }
max_gradient 9
texture { IsoTexture }
no_shadow
scale 1.9 rotate x*-15 translate <3.2, -4, 0>
}
//** f_algbr_cyl2 : extruded form ************************
intersection {
isosurface {
function { f_algbr_cyl2(x,y,z,-0.3, 5, 0, 0, 0) }
//P0= Field Strength
//P1= Field limit
//P2= SOR switch
//P3= SOR offset
//P4= SOR angle
accuracy 0.0001
contained_by { box { <-1.6, -0.01, -0.01>, <1.6, 2.4, 3> } }
max_gradient 5.4
texture { IsoTexture }
no_shadow
}
box { <-1.6, -0.01, -0.01>*0.9999, <1.6, 2.4, 3>*0.9999 texture { ContTexture } }
scale 1.9 rotate x*-15 translate <-3.2, -4, 0>
}
#end
//*** FRAME 3 ***************************************************
#if ( frame_number = 3 )
//** f_algbr_cyl3 : lathe form ************************
isosurface {
function { f_algbr_cyl3(x,y,z,-1, 3, 1, 0, 0) }
//P0= Field Strength
//P1= Field limit
//P2= SOR switch
//P3= SOR offset
//P4= SOR angle
contained_by { box { <-1.05, -0.01, -1.05>, <1.05, 1.3, 1.05> } }
max_gradient 6.5
texture { IsoTexture }
no_shadow
scale 3.2 rotate x*-20 translate <2.7, -3.5, 0>
}
//** f_algbr_cyl3 : extruded form ************************
#declare LCorner = <-1.05, -0.01, -0.01>; #declare RCorner = <1.05, 1.3, 3> ;
intersection {
isosurface {
function { f_algbr_cyl3(x,y,z,-1, 3, 0, 0, 0)}
//P0= Field Strength
//P1= Field limit
//P2= SOR switch
//P3= SOR offset
//P4= SOR angle
contained_by { box { LCorner, RCorner } }
max_gradient 2
texture { IsoTexture }
no_shadow
}
box { LCorner*0.9999, RCorner*0.9999 texture { ContTexture } }
scale 3.2 rotate y*-5 rotate x*-10 translate <-4.8, -3.5, 0>
}
light_source { <-10, 4, -0> rgb 0.5 shadowless }
#end
//*** FRAME 4 ***************************************************
#if ( frame_number = 4 )
//** f_algbr_cyl4 : lathe form ************************
isosurface {
function { f_algbr_cyl4(x,y,z, -0.4, 5, 1, 0, 0) }
//P0= Field Strength
//P1= Field limit
//P2= SOR switch
//P3= SOR offset
//P4= SOR angle
contained_by { sphere { 0, 1.2 } }
max_gradient 7.1
texture { IsoTexture }
no_shadow
scale 3.3 rotate x*-10 translate <3.5, -0.8, 0>
}
//** f_algbr_cyl4 : extruded form ************************
#declare LCorner = <-0.9, -0.55, -0.01>; #declare RCorner = <0.9, 1.0, 6>;
intersection {
isosurface {
function { f_algbr_cyl4(x,y,z, -0.4, 5, 0, 0, 0) }
//P0= Field Strength
//P1= Field limit
//P2= SOR switch
//P3= SOR offset
//P4= SOR angle
contained_by { box { LCorner, RCorner } }
max_gradient 4
texture { IsoTexture }
no_shadow
}
box { LCorner*0.9999, RCorner*0.9999 texture { ContTexture } }
scale 3.3 translate <-3.3, -0.8, 0>
}
#end
//*** FRAME 5 ***************************************************
#if ( frame_number = 5 )
isosurface {
function { f_bicorn(x,y,z, -0.01, 3) }
//P0= Field strength
//P1= Y Scale (inverse). The surface is always the same shape. Setting the scale to 1 gives
// a surface with a radius of about 1 unit
contained_by { sphere { 0, 3 } }
max_gradient 5.0
texture { IsoTexture }
no_shadow
scale 1.5 rotate x*-20
}
#end
//*** FRAME 6 ***************************************************
#if ( frame_number = 6 )
isosurface {
function { f_bifolia(x,y,z, -1, 3) }
//P0= Field Strength
//P1= Scale. Setting the scale to 3 gives a surface with a radius of about 1 unit
contained_by { box { <-1.0, -0.01, -1.0>, <1.0, 0.8, 1.0> } }
max_gradient 7.3
texture { IsoTexture }
no_shadow
scale 4.5 rotate x*-20
}
#end
//*** FRAME 7 ***************************************************
#if ( frame_number = 7 )
#declare LCorner = <-1.9, -1.3, -1.3>; #declare RCorner = <1.8, 1.3, 1.3>;
isosurface {
function { f_blob(x,y,z, 1.4, 1, 0.8, 1.2, 1) }
//P0= X distance between the 2 components
//P1= Strength of component 1
//P2= Radius component 1 (inv)
//P3= Strength of component 2
//P4= Radius component 2 (inv)
threshold -0.3
contained_by { box { LCorner, RCorner } }
max_gradient 1.8
texture { IsoTexture }
no_shadow
scale 4
}
#end


//*** FRAME 8 ***************************************************
#if ( frame_number = 8 )
#declare LCorner = <-0.5, -0.5, -0.5>; #declare RCorner = <1.4, 0.5, 0.5>;
isosurface {
function { f_blob2(x,y,z, 1, 1/0.2, 2, 1) }
//P0= Separation (One comp at origin)
//P1= Size (inv)
//P2= Strength
//P3= Threshold
contained_by { box { LCorner, RCorner } }
max_gradient 3.9
texture { IsoTexture }
no_shadow
scale 7 translate x*-3.5
}
#end //frame_number = 51
//*** FRAME 9 ***************************************************
#if ( frame_number = 9 )
isosurface {
function { f_boy_surface(x,y,z, -0.001, 0.01) }
//P0= Field Strength. Set extremely low to avoid that the shape breaks up.
//P1= Scale. The surface is always the same shape.
contained_by { box { <-1.0, -1.45, -0.1>, <1.5, 1.2, 2.2> } }
max_gradient 2.0
texture { IsoTexture }
no_shadow
scale 3 rotate y*15 rotate x*-20
}
#end
//*** FRAME 10 ***************************************************
#if ( frame_number = 10 )
#declare LCorner = <-1.0, -0.5, -0.55>; #declare RCorner = <1.0, 0.6, 1.1>;
isosurface {
function { f_comma(x,y,z, 1) }
//P0= size
contained_by { box { LCorner, RCorner } }
max_gradient 1.4
texture { IsoTexture }
scale 5 rotate y*-30 rotate x*-35 translate y*-1.8
}
#end
//*** FRAME 11 ***************************************************
#if ( frame_number = 11 )
#declare Radius = 2.4;
isosurface {
function { f_cross_ellipsoids(x,y,z, 0.05, 8, 8, 1) }
//P0= Eccentricity
//P1= Size (inv)
//P2= Diameter
//P3= Threshold
contained_by { sphere { 0, Radius } }
max_gradient 12
texture { IsoTexture }
no_shadow
scale 2 rotate y*25 rotate x*-20
}
#end
//*** FRAME 12 ***************************************************
#if ( frame_number = 12 )
#declare LCorner = <-3.2, -0.1, -2.5>; #declare RCorner = <3.2, 2, 2.5>;
intersection {
isosurface {
function { f_crossed_trough(x,y,z, -0.05) }
//P0= Field Strength
contained_by { box { LCorner, RCorner } }
max_gradient 0.5
texture { IsoTexture }
no_shadow
}
box { LCorner*0.9999, RCorner*0.9999 texture { ContTexture } }
scale 1.8 rotate x*-90
}
#end
//*** FRAME 13 ***************************************************
#if ( frame_number = 13 )
#declare Radius = 8;
intersection {
isosurface {
function { f_cubic_saddle(x,y,z, -0.5) }
//P0= Field Strength
contained_by { sphere { 0, Radius } }
max_gradient 38.1
texture { IsoTexture }
no_shadow
}
sphere { 0, Radius-0.00001 texture { ContTexture } }
scale 0.8 rotate z*135 rotate x*-20 translate y*1.2
}
#end
//*** FRAME 14 ***************************************************
#if ( frame_number = 14 )
isosurface {
function { f_cushion(x,y,z, -0.25) }
//P0= Field Strength
contained_by { box { <-1.1, -1.3, -0.45>, <1.1, 1.3, 1.2> } }
max_gradient 2.9
texture { IsoTexture }
no_shadow
scale 3 rotate y*-145
}
#end
//*** FRAME 15 ***************************************************
#if ( frame_number = 15 )
isosurface {
function { f_devils_curve(x,y,z, -0.2) }
//P0= Field Strength
contained_by { box { <-1.2, -1.2, -1.2>, <1.2, 1.2, 1.2> } }
max_gradient 2.5
texture { IsoTexture }
no_shadow
scale 4 rotate x*5
}
#end
//*** FRAME 16 ***************************************************
#if ( frame_number = 16 )
//** f_devils_curve_2d : lathe form ***********************************
isosurface {
function { f_devils_curve_2d(x,y,z, -1, 0.25, 0.3, 1, 0, 0) }
//P0= Field Strength
//P1= X factor. The X and Y factors control the size of the central feature
//P2= Y factor
// If the X factor is slightly stronger than the Y factor, then the side pieces
// are linked to the central piece by a horizontal bridge at each corner.
// If the Y factor is slightly greater than the X factor, then there is a vertical
// gap between the side pieces and the central piece at each corner.
// If the X and Y factors are equal each of the four corners meets at a point.
//P3= SOR switch
//P4= SOR offset
//P5= SOR angle
contained_by { box { <-0.7, -0.8, -0.8>, <0.7, 0.7, 0.7> } }
max_gradient 3.3
texture { IsoTexture }
no_shadow
scale 4.2 rotate x*-2 translate <3.3, -0.5, 0>
}
//** f_devils_curve_2d : extruded form **********************************
#declare LCorner = <-0.7, -0.8, -0.01>; #declare RCorner = <0.7, 0.7, 6>;
intersection {
isosurface {
function { f_devils_curve_2d(x,y,z, -1, 0.25, 0.3, 0, 0, 0) }
//P0= Field Strength
//P1= X factor. The X and Y factors control the size of the central feature
//P2= Y factor
// If the X factor is slightly stronger than the Y factor, then the side pieces
// are linked to the central piece by a horizontal bridge at each corner.
// If the Y factor is slightly greater than the X factor, then there is a vertical
// gap between the side pieces and the central piece at each corner.
// If the X and Y factors are equal each of the four corners meets at a point.
//P3= SOR switch
//P4= SOR offset
//P5= SOR angle
contained_by { box { LCorner, RCorner } }
max_gradient 1.5
texture { IsoTexture }
no_shadow
}
box { LCorner*0.9999, RCorner*0.9999 texture { ContTexture } }
scale 4.2 rotate x*-2 translate <-3.3, -0.5, 0>
no_shadow
}
#end
//*** FRAME 17 ***************************************************
#if ( frame_number = 17 )
isosurface {
function { f_dupin_cyclid(x,y,z,-.05, 0.27, 0.04, 0.55, 0.0, 1.0) }
//P0= Field Strength
//P1= Major radius of torus
//P2= Minor radius of torus
//P3= X displacement of torus
//P4= Y displacement of torus
//P5= radius of inversion
contained_by { box { <1.0, -0.6, -1.6>, <4.3, 0.6, 1.6> } }
max_gradient 2.1
texture { IsoTexture }
no_shadow
scale 1.5 rotate x*-90
}
#end
//*** FRAME 18 ***************************************************
#if ( frame_number = 18 )
#declare Radius = 1.0;
isosurface {
function { f_ellipsoid(x,y,z, 1/0.95, 1/0.3, 1/0.95) }
//P0= X scale (inv)
//P1= Y scale (inv)
//P2= Z scale (inv)
threshold 1
contained_by { sphere { 0, Radius } }
max_gradient 2.7
texture { IsoTexture }
no_shadow
scale 5.5 rotate x*-25 translate y*-1
}
#end
//*** FRAME 19 ***************************************************
#if ( frame_number = 19 )
isosurface {
function { f_enneper(x,y,z, -0.1) }
//P0= Field Strength
contained_by { box { <-3.5, -3.5, -3.8>, <3.5, 3.5, -0.25> } }
max_gradient 85
texture { IsoTexture }
no_shadow
scale 1.1 rotate y*15
}
#end
//*** FRAME 20 ***************************************************
#if ( frame_number = 20 )
#declare Radius = 1.6;
isosurface {
function { f_flange_cover(x,y,z, 0.01, 35, 1.5, 1.2) }
//P0= Spikiness (1= sph; <= spikes)
//P1= Size (inv)
//P2= Flange (1= no; >=flanges)
//P3= Threshold
contained_by { sphere { 0, Radius } }
max_gradient 11
texture { IsoTexture }
no_shadow
scale 3.45 rotate y*15 rotate x*-30 translate y*-0.1
}
#end
//*** FRAME 21 ***************************************************
#if ( frame_number = 21)
#declare LCorner = <-0.0, -0.9, -0.9>; #declare RCorner = <0.8, 0.9, 0.9>;
intersection {
isosurface {
function { f_folium_surface(x,y,z, -0.02, 15, 15) }
//P0= Field Strength
//P1= Neck width factor - the larger you set this, the narrower the neck where the paraboloid meets the plane
//P2= Divergence - the higher the value, the wider the paraboloid gets
contained_by { box { LCorner, RCorner } }
max_gradient 1.3
texture { IsoTexture }
no_shadow
}
box { LCorner*0.9999, RCorner*0.9999 texture { ContTexture } }
scale 5.5 rotate z*90 rotate x*-25 translate y*-1.5
no_shadow
}
#end
//*** FRAME 22 ***************************************************
#if ( frame_number = 22)
//** f_folium_surface_2d : lathe form **************************************
#declare LCorner = <-0.7, -0.8, -0.7>; #declare RCorner = <0.7, 0.8, 0.7>;
intersection {
isosurface {
function { f_folium_surface_2d(x,y,z, -0.01, 12, 20, 1, 0, 0) }
//P0= Field Strength
//P1= Neck width factor - same as 3d surface if you're revolving it around the Y axis
//P2= Divergence - same as 3d surface if you're revolving it around the Y axis
//P3= SOR switch
//P4= SOR offset
//P5= SOR angle
contained_by { box { LCorner, RCorner } }
max_gradient 0.5
texture { IsoTexture }
no_shadow
}
box { LCorner*0.9999, RCorner*0.9999 texture { ContTexture } }
scale 5 rotate x*3 translate <2.5, -0.5, 0>
no_shadow
}
//** f_folium_surface_2d : extruded form **************************************
#declare LCorner = <-0.7, -0.8, -0.01>; #declare RCorner = <0.7, 0.8, 3>;
intersection {
isosurface {
function { f_folium_surface_2d(x,y,z, -0.01, 12, 20, 0, 0, 0) }
//P0= Field Strength
//P1= Neck width factor - same as 3d surface if you're revolving it around the Y axis
//P2= Divergence - same as 3d surface if you're revolving it around the Y axis
//P3= SOR switch
//P4= SOR offset
//P5= SOR angle
contained_by { box { LCorner, RCorner } }
max_gradient 0.3
texture { IsoTexture }
}
box { LCorner*0.9999, RCorner*0.9999 texture { ContTexture } }
scale 5 rotate x*3 translate <-5.5, -0.5, 0>
no_shadow
}
#end
//*** FRAME 23 ***************************************************
#if ( frame_number = 23 )
isosurface {
function { f_glob(x,y,z, -1) }
//P0= Field Strength
contained_by { box { <-1.0, -1.5, -1.6>, <1.5, 1.5, 1.6> } }
max_gradient 6.5
texture { IsoTexture }
no_shadow
scale 3.7 rotate z*90 rotate x*10
}
#end
//*** FRAME 24 ***************************************************
#if ( frame_number = 24 )
isosurface {
function { f_heart(x,y,z, -0.001) }
//P0= Field Strength
contained_by { box { <-0.8, -1.2, -1.1>, <0.8, 1.2, 1.3> } }
max_gradient 0.1
texture { IsoTexture }
no_shadow
scale 3 rotate y*-90 rotate z*-90
}
#end
//*** FRAME 25 ***************************************************
#if ( frame_number = 25 )
#declare LCorner = <-3.7, -1.7, -3.7>; #declare RCorner = <3.7, 1.7, 3.7>;
isosurface {
function { f_helical_torus(x,y,z, 2, 7, 1, 0.1, 1, 0.5, 1, 6, 2.0, 0) }
//P0= Major radius
//P1= Nr of winding loops
//P2= Twistness winding
//P3= Flatness of winding?
//P4= Threshold
//P5= Negative minor radius?
//P6= Another fatness of winding control
//P7= Groove period
//P8= Groove amplitude
//P9= Groove phase
contained_by { box { LCorner, RCorner } }
max_gradient 13
texture { IsoTexture }
no_shadow
scale 1.7 rotate x*-45
}
#end
//*** FRAME 26 ***************************************************
#if ( frame_number = 26 )
#declare LCorner = <-1.5, -2.9, -1.5>; #declare RCorner = <1.5, 2.9, 1.5>;
isosurface {
function { f_helix1(x,y,z, 1, 8, 0.3, 0.9, 0.6, 0.2, 0) }
//P0= number of helixes
//P1= frequency
//P2= minor radius
//P3= major radius
//P4= Y scale cross section
//P5= cross section
//P6= cross section rotation ()
contained_by { box { LCorner, RCorner } }
max_gradient 1.5
texture { IsoTexture }
no_shadow
scale 1.9 rotate z*-54
}
#end
//*** FRAME 27 ***************************************************
#if ( frame_number = 27 )
#declare LCorner = <-1, -2.9, -1>; #declare RCorner = <1, 2.9, 1>;
isosurface {
function { f_helix2(x,y,z, 0, 8, 0.35, 0.4, 0, 0.5, 0) }
//P0= not used
//P1= frequency
//P2= minor radius
//P3= major radius
//P4= not used
//P5= cross section
//P6= cross section rotation ()
contained_by { box { LCorner, RCorner } }
max_gradient 4.3
texture { IsoTexture }
no_shadow
scale 2.2 rotate z*-54
}
#end
//*** FRAME 28 ***************************************************
#if ( frame_number = 28 )
#declare LCorner = <-4, -4, -4>; #declare RCorner = <4, 4, 4>;
isosurface {
function { f_hex_x(x,y,z, 1) }
//P0= not used
threshold 0.6
contained_by { box { LCorner, RCorner } }
max_gradient 1
texture { IsoTexture }
no_shadow
}
#end
//*** FRAME 29 ***************************************************
#if ( frame_number = 29 )
#declare LCorner = <-4, -4, -4>; #declare RCorner = <4, 4, 4>;
isosurface {
function { f_hex_y(x,y,z, 1) }
//P0= not used
threshold 0.1
contained_by { box { LCorner, RCorner } }
max_gradient 1
texture { IsoTexture }
no_shadow
}
#end
//*** FRAME 30 ***************************************************
#if ( frame_number = 30 )
#declare Radius = 1.5;
intersection {
isosurface {
function { f_hetero_mf(x,y,z, 1.1, 2.05, 15, 0.26, 0.01, 1) }
//P0= H
//P1= lacunarity
//P2= octaves
//P3= offset
//P4= T
//P5= noise generator type
contained_by { sphere { 0, Radius } }
max_gradient 5.5
texture { IsoTexture }
no_shadow
}
sphere { 0, Radius-0.00001 texture { ContTexture } }
scale 4.3 translate y*-1.7
}
#end
//*** FRAME 31 ***************************************************
#if ( frame_number = 31 )
isosurface {
function { f_hunt_surface(x,y,z, -0.01) }
//P0= Field Strength
contained_by { sphere { 0, 3.8 } }
max_gradient 84
texture { IsoTexture }
no_shadow
scale 1.2 rotate y*-45
}
#end
//*** FRAME 32 ***************************************************
#if ( frame_number = 32 )
isosurface {
function { f_hyperbolic_torus(x,y,z, -0.005, 1, 0.6) }
//P0= Field Strength
//P1= Major radius: separation between the centres of the tubes at the closest point
//P2= Minor radius: thickness of the tubes at the closest point
contained_by { box { <-4, -0.9, -4>, <4, 0.9, 4> } }
max_gradient 0.9
texture { IsoTexture }
no_shadow
scale 1.5 rotate x*-90
}
#end
//*** FRAME 33 ***************************************************
#if ( frame_number = 33 )
#declare Radius = 0.9;
isosurface {
function { f_isect_ellipsoids(x,y,z, 5, 1, 18, 1) }
//P0= Eccentricity
//P1= Size (inv)
//P2= Diameter
//P3= Threshold
contained_by { sphere { 0, Radius } }
max_gradient 20
texture { IsoTexture }
scale 5 rotate y*25 rotate x*-20
no_shadow
}
#end
//*** FRAME 34 ***************************************************
#declare ContainerOn = off;
#declare SphereOn = 0;
#if ( frame_number = 34 )
#declare LCorner = <-1.0, -1.5, -1.5>; #declare RCorner = <1.0, 1.5, 1.5>;
intersection {
isosurface {
function { f_kampyle_of_eudoxus(x,y,z, -0.001, 0.01, 2) }
//P0= Field Strength
//P1= Dimple: When zero, the two dimples punch right through and meet at the centre. Non-zero values give less dimpling
//P2= Closeness: Higher values make the two planes become closer
contained_by { box { LCorner, RCorner } }
max_gradient 0.04
texture { IsoTexture }
no_shadow
}
box { LCorner*0.9999, RCorner*0.9999 texture { ContTexture } }
scale 3.8 rotate z*90
no_shadow
}
#end
//*** FRAME 35 ***************************************************
#if ( frame_number = 35 )
//** f_kampyle_of_eudoxus_2d : lathe form *****************************
#declare LCorner = <-1.6, -1.1, -1.6>; #declare RCorner = <1.6, 1.15, 1.6>;
intersection {
isosurface {
function { f_kampyle_of_eudoxus_2d(x,y,z, -0.001, 0, 2, 1, 0, 90) }
//P0= Field Strength
//P1= Dimple: When zero, the two dimples punch right through and meet at the centre. Non-zero values give less dimpling
//P2= Closeness: Higher values make the two planes become closer
//P3= SOR switch
//P4= SOR offset
//P5= SOR angle
contained_by { box { LCorner, RCorner } }
max_gradient 0.2
texture { IsoTexture }

}
box { LCorner*0.9999, RCorner*0.9999 texture { ContTexture } }
scale 1.9 rotate x*-1 translate <3, -1, 0>
no_shadow
}
//** f_kampyle_of_eudoxus_2d : extruded form *****************************
#declare LCorner = <-1.1, -1.6, -0.01>; #declare RCorner = <1.15, 1.6, 8>;
intersection {
isosurface {
function { f_kampyle_of_eudoxus_2d(x,y,z, -0.001, 0, 2, 0, 0, 0) }
//P0= Field Strength
//P1= Dimple: When zero, the two dimples punch right through and meet at the centre. Non-zero values give less dimpling
//P2= Closeness: Higher values make the two planes become closer
//P3= SOR switch
//P4= SOR offset
//P5= SOR angle
contained_by { box { LCorner, RCorner } }
max_gradient 0.05
texture { IsoTexture }
no_shadow
}
box { LCorner*0.9999, RCorner*0.9999 texture { ContTexture } }
scale 1.9 rotate z*90 rotate x*-1 translate <-3.6, -1, 0>
no_shadow
}
light_source { <0, -1, -0.5> rgb 0.3 shadowless }
#end
//*** FRAME 36 ***************************************************
#if ( frame_number = 36 )
isosurface {
function { f_klein_bottle(x,y,z, -0.0005) }
//P0= Field strength
contained_by { sphere { 0, 4.2 } }
max_gradient 2.7
texture { IsoTexture }
no_shadow
scale 1.3 rotate y*110 rotate x*5
}
#end
//*** FRAME 37 ***************************************************
#if ( frame_number = 37 )
#declare LCorner = <-7.4, -7.4, -7.4>; #declare RCorner = <7.4, 7.4, 7.4>;
intersection {
isosurface {
function { f_kummer_surface_v1(x,y,z, -0.01) }
//P0= Field Strength
contained_by { box { LCorner, RCorner } }
max_gradient 8.3
texture { IsoTexture }
no_shadow
}
box { LCorner*0.9999, RCorner*0.9999 texture { ContTexture } }
scale 0.55 rotate y*-25
}
#end
//*** FRAME 38 ***************************************************
#if ( frame_number = 38 )
isosurface {
function { f_kummer_surface_v2(x,y,z, -0.0005, -0.3, -0.97, 0) }
//P0= Field Strength
//P1= Rod width (negative): Setting this parameter to larger negative values increases the diameter of the rods
//P2= Divergence (negative): Setting this number to -1 causes the rods to become approximately cylindrical.
// Larger negative values cause the rods to become fatter further from the origin
// Smaller negative values cause the rods to become narrower away from the origin, and have a finite length
//P3= Influences the length of half of the rods. Changing the sign affects the other half of the rods. 0 has no effect
contained_by { box { -3.8, 3.8 } }
max_gradient 0.2
texture { IsoTexture }
no_shadow
scale 1.1 rotate y*25 rotate x*-5
}
#end
//*** FRAME 39 ***************************************************
#if ( frame_number = 39 )
isosurface {
function { f_lemniscate_of_gerono(x,y,z, -0.1) }
//P0= Field Strength
contained_by { box { <-1.05, -0.55, -0.55>, <1.05, 0.55, 0.55> } }
max_gradient 0.3
texture { IsoTexture }
no_shadow
scale 6 rotate y*15
}
#end
//*** FRAME 40 ***************************************************
#if ( frame_number = 40 )
//** f_ lemniscate_of_gerono_2d : lathe form **********************************
#declare LCorner = <-3, -1, -3>; #declare RCorner = <3, 1, 3>;
isosurface {
function { f_lemniscate_of_gerono_2d(x,y,z, -0.1, 1, 1, 1, 2, -45) }
//P0= Field Strength
//P1= Size: increasing this makes the 2d curve larger and less rounded
//P2= Width: increasing this makes the 2d curve flatter
//P3= SOR switch
//P4= SOR offset
//P5= SOR angle
contained_by { box { LCorner, RCorner } }
max_gradient 2.8
texture { IsoTexture }
scale 1.4 rotate x*-15 translate <2.0, -2.4, 0>
no_shadow
}
//** f_lemniscate_of_gerono_2d : extruded form ************************************
#declare LCorner = <-3, -1, -0.01>; #declare RCorner = <3, 1, 8>;
intersection {
isosurface {
function { f_lemniscate_of_gerono_2d(x,y,z, -0.1, 1, 1, 0, 2, -45) }
//P0= Field Strength
//P1= Size: increasing this makes the 2d curve larger and less rounded
//P2= Width: increasing this makes the 2d curve flatter
//P3= SOR switch
//P4= SOR offset
//P5= SOR angle
contained_by { box { LCorner, RCorner } }
max_gradient 5
texture { IsoTexture }
no_shadow
}
box { LCorner*0.9999, RCorner*0.9999 texture { ContTexture } }
scale 1.4 rotate z*45 rotate x*-3 translate <-4.8, -2.4, 0>
no_shadow
}
#end
//*** FRAME 41 ***************************************************
#if ( frame_number = 41 )
#declare LCorner = <-1, -0.05, -1>; #declare RCorner = <1, 0.05, 1>;
intersection {
isosurface {
function { f_mesh1(x,y,z, 1/8, 1/8, 1/10, 0.01, 1/10) }
//P0= X frequency
//P1= Z frequency
//P2= scale (X-Z)
//P3= amplitude
//P4= scale Y
threshold 0.001
contained_by { box { LCorner, RCorner } }
max_gradient 0.2
texture { IsoTexture }
no_shadow
}
box { LCorner*0.9999, RCorner*0.9999 texture { ContTexture } }
scale 6 rotate x*-30
}
#end
//*** FRAME 42 ***************************************************
#if ( frame_number = 42 )
isosurface {
function { f_mitre(x,y,z, -0.5) }
//P0= Field Strength
contained_by {box { <-0.4, -1, -1>, <0.4, 1, 1> }}
max_gradient 3.1
texture { IsoTexture }
no_shadow
scale 4.5 rotate y*-45
}
#end
//*** FRAME 43 ***************************************************
#if ( frame_number = 43 )
#declare LCorner = <-10, -4, -4>; #declare RCorner = <6, 4, 4>;
intersection {
isosurface {
function { f_nodal_cubic(x,y,z, -0.005) }
//P0= Field Strength
contained_by { box { LCorner, RCorner } }
max_trace 3
max_gradient 0.4
texture { IsoTexture }
no_shadow
}
box { LCorner*0.9999, RCorner*0.9999 texture { ContTexture } }
scale 0.9 rotate <0, 110, 0>
no_shadow
}
#end
//*** FRAME 44 ***************************************************
#if ( frame_number = 44 )
isosurface {
function { f_odd(x,y,z, -0.1) }
//P0= Field Strength
contained_by { box { <-1.05, -1.3, -0.45>, <1.05, 1.3, 1.1> } }
max_gradient 1.0
texture { IsoTexture }
no_shadow
scale 3.5 rotate y*-45 translate x*0.8
}
#end
//*** FRAME 45 ***************************************************
#if ( frame_number = 45 )
isosurface {
function { f_ovals_of_cassini(x,y,z, -0.1, 0.4, 0.18, 6) }
//P0= Field strength
//P1= Major radius - like the major radius of a torus
//P2= Filling. Zero for a torus. With higher values the hole in the middle starts to fill up. Even higher values give an ellipsoid with a dimple
//P3= Thickness. Higher values give plumper results
contained_by { box { <-0.82, -0.35, -0.82>, <0.82, 0.35, 0.82> }}
max_gradient 0.4
texture { IsoTexture }
no_shadow
scale 6 rotate x*-45
}
#end
//*** FRAME 46 ***************************************************
#if ( frame_number = 46 )
isosurface {
function { f_paraboloid(x,y,z, -1) }
//P0= Field Strength
contained_by {box { <-1.4, -0.1, -1.4>, <1.4, 1.9, 1.4> }}
max_gradient 3.2
texture { IsoTexture }
no_shadow
scale 3.5 rotate x*20 translate y*-3.5
}
#end
//*** FRAME 47 ***************************************************
#if ( frame_number = 47 )
isosurface {
function { f_parabolic_torus(x,y,z, -0.1, 0.4, 0.5) }
//P0= Field Strength
//P1= Major radius
//P2= Minor radius
contained_by {box { <-1.4, -0.4, -0.4>, <1.4, 0.4, 1.2> } }
max_gradient 0.7
texture { IsoTexture }
no_shadow
scale 4.5 rotate x*-92 rotate y*-8 translate y*-1.6
}
#end
//*** FRAME 48 ***************************************************
#if ( frame_number = 48 )
#declare Radius = 4;
intersection {
isosurface {
function { f_ph(x,y,z) }
threshold 0.5
contained_by { sphere { 0, Radius } }
max_gradient 2
texture { IsoTexture }
}
sphere { 0, Radius - 0.0001 texture { ContTexture } }
}
#end
//*** FRAME 49 ***************************************************
#if ( frame_number = 49 )
isosurface {
function { f_pillow(x,y,z, 1) }
//P0= Field Strength
contained_by {box { <-1.2, -1.2, -1.2>, <1.2, 1.2, 1.2> }}
max_gradient 5.9
texture { IsoTexture }
no_shadow
scale 2.7 rotate y*45 rotate x*-20
}
#end
//*** FRAME 50 ***************************************************
#if ( frame_number = 50 )
isosurface {
function { f_piriform(x,y,z, 0.7) }
//P0= Field Strength
contained_by { box { <-0, -0.4, -0.4>, <1, 0.4, 0.4> } }
max_gradient 0.9
texture { IsoTexture }
no_shadow
scale 10 rotate y*-20 translate x*-4
}
#end
//*** FRAME 51 ***************************************************
#if ( frame_number = 51 )
//** f_piriform_2d : lathe form ****************************************
#declare LCorner = <-0.4, -0.1, -0.4>; #declare RCorner = <0.4, 1.1, 0.4>;
isosurface {
function { f_piriform_2d(x,y,z, -1, 1, -1, 0.9, 1, 0, -90) }
//P0= Field Strength
//P1= Size factor1: increasing this makes the curve larger
//P2= Size factor 2: making this less negative makes the curve larger but also thinner
//P3= Flatness: increasing this makes the curve fatter
//P4= SOR switch
//P5= SOR offset
//P6= SOR angle
contained_by { box { LCorner, RCorner } }
max_gradient 1.4
texture { IsoTexture }
scale 7.5 translate <3, -4.6, 0>
no_shadow
}
//** f_piriform_2d : extruded form ************************************
#declare LCorner = <-0.4, -0.4, -0.01>; #declare RCorner = <1.1, 0.4, 7>;
intersection {
isosurface {
function { f_piriform_2d(x,y,z, -1, 1, -1, 0.9, 0, 0, 0) }
//P0= Field Strength
//P1= Size factor1: increasing this makes the curve larger
//P2= Size factor 2: making this less negative makes the curve larger but also thinner
//P3= Flatness: increasing this makes the curve fatter
//P4= SOR switch
//P5= SOR offset
//P6= SOR angle
contained_by { box { LCorner, RCorner } }
max_gradient 0.8
texture { IsoTexture }
}
box { LCorner*0.9999, RCorner*0.9999 texture { ContTexture } }
scale 7.5 rotate z*90 rotate y*1 translate <-3.3, -4.6, 0>
}
#end
//*** FRAME 52 ***************************************************
#if ( frame_number = 52 )
#declare LCorner = <-0.3, 0, -0.3>; #declare RCorner = <0.3, 1, 0.3>;
isosurface {
function { f_poly4(x,y,z, 0, 1, -1, 0, 0) }
//P0= Constant
//P1= Y coefficient
//p2= Y2 coefficient
//p3= Y3 coefficient
//p4= Y4 coefficient
contained_by { box { LCorner, RCorner } }
max_gradient 1.4
texture { IsoTexture }
scale 8 translate y*-4
no_shadow
}
#end
//*** FRAME 53 ***************************************************
#if ( frame_number = 53 )
#declare Radius = 4;
intersection {
isosurface {
function { f_polytubes(x,y,z, 8, -1, -1/100, -0.02, 0.1, -0.25) }
//P0= nr of wires
//P1= radial onset (around Y) inverse
//P2= radial scale (around Y)
//P3= profile shape
//positive values = parabolish becoming sharper ith higher values
//P4= amplitude pos/neg part of profile
//P5= amplitude profile
threshold 0.4
contained_by { sphere { 0, Radius } }
max_gradient 28
texture { IsoTexture }
no_shadow
}
sphere { 0, Radius-0.00001 texture { ContTexture } }
scale 1.6 rotate y*2 rotate x*-18
}
#end
//*** FRAME 54 ***************************************************
#if ( frame_number = 54 )
#declare LCorner = <-5.5, -7.3, -5.5>; #declare RCorner = <5.5, 7.3, 5.5>;
isosurface {
function { f_quantum(x,y,z, 0) }
//P0= Not used
contained_by { box { LCorner, RCorner } }
max_gradient 6
texture { IsoTexture }
scale 0.7 rotate x*-20
no_shadow
}
#end
//*** FRAME 55 ***************************************************
#if ( frame_number = 55 )
isosurface {
function { f_quartic_paraboloid(x,y,z, -0.01) }
//P0= Field Strength
contained_by {box { <-1.45, -0.1, -1.45>, <1.45, 2.5, 1.45> }}
max_gradient 0.2
texture { IsoTexture }
no_shadow
scale 3 rotate y*45 rotate x*20 translate y*-4
}
#end
//*** FRAME 56 ***************************************************
#if ( frame_number = 56 )
#declare LCorner = <-3.5, -3.0, -3.5>; #declare RCorner = <3.5, 3.0, 3.5>;
intersection {
isosurface {
function { f_quartic_saddle(x,y,z, 0.05) }
//P0= Field Strength
contained_by { box { LCorner, RCorner } }
max_gradient 11
texture { IsoTexture }
}
box { LCorner*0.9999, RCorner*0.9999 texture { ContTexture } }
scale 1.2 rotate y*5 rotate x*-15
no_shadow
}
#end
//*** FRAME 57 ***************************************************
#if ( frame_number = 57 )
isosurface {
function { f_quartic_cylinder(x,y,z, -1, 0.8, 0.2) }
//P0= Field Strength
//P1= Diameter of the "bubble"
//P2= Controls the width of the tube and the vertical scale of the "bubble"
contained_by { box { <-0.85, -2.5, -0.85>, <0.85, 2.5, 0.85> } }
max_gradient 8.8
texture { IsoTexture }
scale 2.0
no_shadow
}
#end
//*** FRAME 58 ***************************************************
#if ( frame_number = 58 )
isosurface {
function { f_r(x,y,z) }
threshold 0.7
contained_by { sphere { 0, 0.75 } }
max_gradient 1
texture { IsoTexture }
scale 5
}
#end
//*** FRAME 59 ***************************************************
#if ( frame_number = 59 )
#declare Radius = 4;
isosurface {
function { f_sphere(x,y,z, (Radius-0.5)) + (-f_ridge( x*3, y*3, z*3, 1, 3, 1, 0.2, 0, 0 )*0.9) }
//P0= Lambda
//P1= Octaves
//P2= Omega
//P3= Offset
//P4= Ridge
//P5= noise generator type [0,1,2,3]
contained_by { sphere { 0, Radius*1.1 } }
max_gradient 5
texture { IsoTexture }
}
#end
//*** FRAME 60 ***************************************************
#if ( frame_number = 60 )
#declare Radius = 4;
isosurface {
function { f_sphere(x,y,z, Radius-0.5) + (-f_ridged_mf( x*2, y*2, z*3, 2, 3, 1, 0.1, 1, 0 )*2) }
//P0= H
//P1= Lacunarity
//P2= Octaves
//P3= Offset
//P4= Gain
//P5= noise generator type [0,1,2,3]
contained_by { sphere { 0, Radius*1.1 } }
max_gradient 10
texture { IsoTexture }
}
#end
//*** FRAME 61 ***************************************************
#if ( frame_number = 61 )
#declare LCorner = <-1.1, -1.1, -1.1>; #declare RCorner = <1.1, 1.1, 1.1>;
isosurface {
function { f_rounded_box(x,y,z, 0.3, 1, 1, 1) }
//P0= radius rounded corner
//P1= scale x
//P2= scale y
//P3= scale z
contained_by { box { LCorner, RCorner } }
max_gradient 1
texture { IsoTexture }
scale 3 rotate y*-35 rotate x*-20 translate <0, 0, 0>
no_shadow
}
#end
//*** FRAME 62 ***************************************************
#if ( frame_number = 62 )
#declare Radius = 1.01;
isosurface {
function { f_sphere(x,y,z, 1) }
//P0= Radius
contained_by { sphere { 0, Radius } }
max_gradient 1.0
texture { IsoTexture }
scale 4
no_shadow
}
#end
//*** FRAME 63 ***************************************************
#if ( frame_number = 63 )
#declare Radius = 2.5;
isosurface {
function { f_spikes(x,y,z, 0.04, 5.6, -4, 0.1, 1) }
//P0= Spikiness
//P1= Hollowness
//P2= Size (<0 with thresh 0)
//P3= Roundness
//P4= Fatness
contained_by { sphere { 0, Radius } }
max_gradient 11
texture { IsoTexture }
scale 2 rotate y*30 rotate x*-18
no_shadow
}
#end
//*** FRAME 64 ***************************************************
#if ( frame_number = 64 )
#declare LCorner = <-1.2, -0.2, -1.2>; #declare RCorner = <1.2, 0.7, 1.2>;
intersection {
isosurface {
function { f_spikes_2d(x,y,z, 0.7, 15, 15, 2.2) }
//P0= Height central spike
//P1= X frequency of spikes
//P2= Z frequency of spikes
//P3= Height dimming from center
accuracy 0.0001
contained_by { box { LCorner, RCorner } }
max_gradient 10
texture { IsoTexture }
no_shadow
}
box { LCorner*0.9999, RCorner*0.9999 texture { ContTexture } }
scale 4.9 rotate x*-25 translate y*-0.7
}
#end
//*** FRAME 65 ***************************************************
#if ( frame_number = 65 )
#declare LCorner = <-1, -0.05, -1>; #declare RCorner = <1, 0.05, 1>;
isosurface {
function { f_spiral(x,y,z, 0.2, 0.04, 1, 0, 0, 1) }
//P0= distance between windings
//P1= Y thickness
//P2= outer diameter
//P3= not used
//P4= not used
//P5= cross section shape
contained_by { box { LCorner, RCorner } }
max_gradient 1.3
texture { IsoTexture }
scale 6.3 rotate x*-30
no_shadow
}
#end
//*** FRAME 66 ***************************************************
#if ( frame_number = 66 )
isosurface {
function { f_steiners_roman(x,y,z, -1) }
//P0= Field Strength
contained_by { sphere { 0, 0.6 } }
max_gradient 0.3
texture { IsoTexture }
scale 8.5 rotate y*25 rotate x*-25
no_shadow
}
#end
//*** FRAME 67 ***************************************************
#if ( frame_number = 67 )
#declare Radius = 2.4;
intersection {
isosurface {
function { f_strophoid(x,y,z, -0.2, 2, 0.5, 0.9) }
//P0= Field Strength
//P1= Size of bulb. Larger values give larger bulbs. Negative values give a bulb on the other side of the plane
//P2= Sharpness.
// When 0, the bulb is like a sphere that just touches the plane.
// When positive, there is a crossover point
// When negative the bulb simply bulges out of the plane like a pimple
//P3= Flatness. Higher values make the top end of the bulb fatter
contained_by { sphere { 0, 2.4 } }
max_gradient 1.4
texture { IsoTexture }
}
sphere { 0, Radius-0.00001 texture { ContTexture } }
scale 2 rotate y*-28 rotate x*10 translate x*0.6
no_shadow
}
#end
//*** FRAME 68 ***************************************************
#if ( frame_number = 68 )
//** f_strophoid_2d : lathe form ***************************************
#declare Radius = 8.5;
isosurface {
function { f_strophoid_2d(x,y,z, 0.02, -8, 0.8, 0.3, 1, 0, 0) }
//P0= Field Strength
//P1= Size of bulb
// Larger values give larger bulbs
// Negative values give a bumb on the other side of the plane
//P2= Sharpness
// When 0, the bulb is like a sphere that just touches the plane.
// When positive, there is a crossover point
// When negative the bulb simply bulges out of the plane like a pimple
//P3= Flatness. Higher values make the top end of the bulb fatter
//P4= SOR switch
//P5= SOR offset
//P6= SOR angle
contained_by { sphere { 0, Radius } }
max_gradient 1.4
texture { IsoTexture }
scale 0.4 rotate x*-10 translate <2.6, -1, 0>
}
//** f_strophoid_2d : extruded form ***************************************
#declare LCorner = <-1.0, -8.0, -0.01>; #declare RCorner = <8.5, 8.0, 14>;
intersection {
isosurface {
function { f_strophoid_2d(x,y,z, 0.02, -8, 0.8, 0.3, 0, 0, 0) }
//P0= Field Strength
//P1= Size of bulb
// Larger values give larger bulbs
// Negative values give a bumb on the other side of the plane
//P2= Sharpness
// When 0, the bulb is like a sphere that just touches the plane.
// When positive, there is a crossover point
// When negative the bulb simply bulges out of the plane like a pimple
//P3= Flatness. Higher values make the top end of the bulb fatter
//P4= SOR switch
//P5= SOR offset
//P6= SOR angle
contained_by { box { LCorner, RCorner } }
max_gradient 1.6
texture { IsoTexture }
}
box { LCorner*0.9999, RCorner*0.9999 texture { ContTexture } }
scale 0.4 rotate x*-10 translate <-5, -1, 0>
}
#end
//*** FRAME 69 ***************************************************
#if ( frame_number = 69 )
#declare Radius = 1.4;
isosurface {
function { -f_superellipsoid(x,y,z, 0.3, 0.5) }
//P0= rounding NS
//P1= rounding EW
contained_by { sphere { 0, Radius } }
max_gradient 0.9
texture { IsoTexture }
scale 3.8 rotate y*-40 rotate x*-20
no_shadow
}
#end
//*** FRAME 70 ***************************************************
#if ( frame_number = 70 )
isosurface {
function { f_sphere(x,y,z, 1) + sin(f_th(x,y,z)*20)*0.05*(1-y*y) }
contained_by { sphere { 0, 1.1 } }
max_gradient 1.5
texture { IsoTexture }
scale 4 rotate x*-35
}
#end
//*** FRAME 71 ***************************************************
#if ( frame_number = 71 )
#declare LCorner = <-1, -0.25, -1>; #declare RCorner = <1, 0.25, 1>;
isosurface {
function { f_torus(x,y,z, 0.8, 0.2) }
//P0= major radius
//P1= minor radius
contained_by { box { LCorner, RCorner } }
max_gradient 1
texture { IsoTexture }
scale 5.5 rotate x*-30
no_shadow
}
#end
//*** FRAME 72 ***************************************************
#if ( frame_number = 72 )
isosurface {
function { f_torus2(x,y,z, -1, 0.4, 0.07) }
//P0= Field Strength
//P1= Major radius
//P2= Minor radius
contained_by { box {<-0.5, -0.1, -0.5>, <0.5, 0.1, 0.5> } }
max_gradient 0.6
texture { IsoTexture }
scale 12 rotate x*-35
no_shadow
}
#end
//*** FRAME 73 ***************************************************
#if ( frame_number = 73 )
isosurface {
function { f_torus_gumdrop(x,y,z, -0.01) }
//P0= Field Strength
contained_by { sphere { 0, 2.1 } }
max_gradient 1.1
texture { IsoTexture }
no_shadow
scale 2 rotate y*18
}
#end
//*** FRAME 74 ***************************************************
#if ( frame_number = 74 )
#declare LCorner = <-3.3, -0.2, -2.5>; #declare RCorner = <3.3, 3.5, 3.0>;
intersection {
isosurface {
function { f_umbrella(x,y,z, -0.2) }
//P0= Field Strength
contained_by { box { LCorner, RCorner } }
max_gradient 2.6
texture { IsoTexture }
no_shadow
}
box { LCorner*0.9999, RCorner*0.9999 texture { ContTexture } }
scale 1.5 rotate x*60 translate y*-0.7
}
#end
//*** FRAME 75 ***************************************************
#if ( frame_number = 75 )
#declare LCorner = <-1.8, -0.15, -1.8>; #declare RCorner = <1.8, 1.1, 1.8>;
intersection {
isosurface {
function { f_witch_of_agnesi(x,y,z, -0.09, 0.02) }
//P0= Field Strength
//P1= Controls width of the spike. The height of the spike is always about 1 unit
contained_by { box { LCorner, RCorner } }
max_gradient 0.6
texture { IsoTexture }
no_shadow
}
box { LCorner*0.9999, RCorner*0.9999 texture { ContTexture } }
scale 3 rotate x*-20 translate y*-1.9
}
#end
//*** FRAME 76 ***************************************************
#if ( frame_number = 76 )
//** f_witch_of_agnesi_2d : lathe form ***************************************
#declare LCorner = <-1.6, -0.2, -2.2>; #declare RCorner = <1.6, 2.2, 2.2>;
intersection {
isosurface {
function { f_witch_of_agnesi_2d(x,y,z, -0.2, 0.2, 0.08, 1, 0, 0) }
//P0= Field Strength
//P1= Controls width of the spike.
//P2= Controls the height of the spike
//P3= SOR switch
//P4= SOR offset
//P5= SOR angle
contained_by { box { LCorner, RCorner } }
max_gradient 1.9
texture { IsoTexture }
}
box { LCorner*0.9999, RCorner*0.9999 texture { ContTexture } }
scale 1.8 rotate x*-15 translate <3.1, -1.5, 0>
}
//** f_witch_of_agnesi_2d : extruded form ***************************************
#declare LCorner = <-1.6, -0.2, -2.2>; #declare RCorner = <1.6, 2.2, 2.2>;
intersection {
isosurface {
function { f_witch_of_agnesi_2d(x,y,z, -0.2, 0.2, 0.08, 0, 0, 0) }
//P0= Field Strength
//P1= Controls width of the spike.
//P2= Controls the height of the spike
//P3= SOR switch
//P4= SOR offset
//P5= SOR angle
contained_by { box { LCorner, RCorner } }
max_gradient 0.8
texture { IsoTexture }
}
box { LCorner*0.9999, RCorner*0.9999 texture { ContTexture } }
scale 1.8 rotate x*-15 translate <-3.1, -1.5, 0>
}
#end
//*** FRAME 77 ***************************************************
#if ( frame_number = 77 )
#declare Radius = 4;
isosurface {
function { f_sphere(x,y,z, 4) + f_noise3d(x*1/0.5,y*1/0.3,z*1/0.4)*0.8 }
contained_by { sphere { 0, Radius } }
evaluate 1, 10, 0.99
max_gradient 1.4
texture { IsoTexture }
}
#end
//*** FRAME 78 ***************************************************
#if ( frame_number = 78 )
#declare Radius = 4;
isosurface {
// function { f_sphere(x,y,z, 4) + f_noise_generator (x*1/0.5,y*1/0.3,z*1/0.4, 1)*0.8 }
function { f_sphere(x,y,z, 4) + f_noise_generator (x,y,z, 1)*0.8 }
//P0= type of noise_generator used (0, 1, 2 or 3)
contained_by { sphere { 0, Radius } }
evaluate 1, 10, 0.99
max_gradient 1.4
texture { IsoTexture }
}
#end
//*** END OF FILE *************************************************/

© Copyright PD Dr. S. Immel