|
Here is a list of the internal functions in the order they appear in the "functions.inc" include file
f_algbr_cyl1(x,y,z, P0, P1, P2, P3, P4)
. An algebraic cylinder is what you
get if you take any 2d curve and plot it in 3d. The 2d curve is
simply extruded along the third axis, in this case the z axis.
With the SOR Switch switched on, the figure-of-eight curve will be rotated around the
Y axis instead of being extruded along the Z axis.
P0
: Field StrengthP1
: Field LimitP2
: SOR SwitchP3
: SOR OffsetP4
: SOR Anglef_algbr_cyl2(x,y,z, P0, P1, P2, P3, P4)
. An algebraic cylinder is what you
get if you take any 2d curve and plot it in 3d.
The 2d curve is simply extruded along the third axis, in this case the z axis.
With the SOR Switch switched on, the cross section curve will be rotated around the
Y axis instead of being extruded along the Z axis.
P0
: Field Strength (Needs a negative field strength or a negated function)P1
: Field LimitP2
: SOR SwitchP3
: SOR OffsetP4
: SOR Anglef_algbr_cyl3(x,y,z, P0, P1, P2, P3, P4)
. An algebraic cylinder is what you get
if you take any 2d curve and plot it in 3d. The 2d curve
is simply extruded along the third axis, in this case the Z axis.
With the SOR Switch switched on, the cross section curve will be rotated around the Y axis
instead of being extruded along the Z axis.
P0
: Field Strength (Needs a negative field strength or a negated function)P1
: Field LimitP2
: SOR SwitchP3
: SOR OffsetP4
: SOR Anglef_algbr_cyl4(x,y,z, P0, P1, P2, P3, P4)
. An algebraic cylinder is what you get
if you take any 2d curve and plot it in 3d. The 2d curve
is simply extruded along the third axis, in this case the z axis.
With the SOR Switch switched on, the cross section curve will be rotated around the
Y axis instead of being extruded along the Z axis.
P0
: Field Strength (Needs a negative field strength or a negated function)P1
: Field LimitP2
: SOR SwitchP3
: SOR OffsetP4
: SOR Anglef_bicorn(x,y,z, P0, P1)
. The surface is a surface of revolution.
P0
: Field Strength (Needs a negative field strength or a negated function)P1
: Scale. The mathematics of this surface suggest that the shape should be different
for different values of this parameter. In practice the difference in shape is hard to spot.
Setting the scale to 3 gives a surface with a radius of about 1 unitf_bifolia(x,y,z, P0, P1)
. The bifolia surface looks something like the top part of
a a paraboloid bounded below by another paraboloid.
P0
: Field Strength (Needs a negative field strength or a negated function)P1
: Scale. The surface is always the same shape. Changing this parameter has the
same effect as adding a scale modifier. Setting the scale to 1 gives a surface with a radius
of about 1 unitf_blob(x,y,z, P0, P1, P2, P3, P4)
. This function generates blobs that are
similar to a CSG blob with two spherical components. This function only seems to work
with negative threshold settings.
P0
: X distance between the two componentsP1
: Blob strength of component 1P2
: Inverse blob radius of component 1P3
: Blob strength of component 2P4
: Inverse blob radius of component 2f_blob2(x,y,z, P0, P1, P2, P3)
. The surface is similar to a CSG blob
with two spherical components.
P0
: Separation. One blob component is at the origin, and the
other is this distance away on the X axisP1
: Inverse size. Increase this to decrease the size of the surfaceP2
: Blob strengthP3
: Threshold. Setting this parameter to 1 and the threshold to zero
has exactly the same effect as setting this parameter to zero and
the threshold to -1f_boy_surface(x,y,z, P0, P1)
. For this surface, it helps if the field strength
is set low, otherwise the surface has a tendency to break up or disappear entirely. This has
the side effect of making the rendering times extremely long.
P0
: Field Strength (Needs a negative field strength or a negated function)P1
: Scale. The surface is always the same shape. Changing this parameter has the
same effect as adding a scale modifierf_comma(x,y,z, P0)
. The 'comma' surface is very much like a comma-shape.
P0
: Scalef_cross_ellipsoids(x,y,z, P0, P1, P2, P3)
. The 'cross ellipsoids' surface is
like the union of three crossed ellipsoids, one oriented along each axis.
P0
: Eccentricity. When less than 1, the ellipsoids are oblate, when greater than 1 the
ellipsoids are prolate, when zero the ellipsoids are spherical (and hence the whole surface is a sphere)P1
: Inverse size. Increase this to decrease the size of the surfaceP2
: Diameter. Increase this to increase the size of the ellipsoidsP3
: Threshold. Setting this parameter to 1 and the threshold to zero has exactly the same
effect as setting this parameter to zero and the threshold to -1f_crossed_trough(x,y,z, P0)
P0
: Field Strength (Needs a negative field strength or a negated function)f_cubic_saddle(x,y,z, P0)
. For this surface, it helps if the field strength is set quite low, otherwise the surface has a
tendency to break up or disappear entirely.
P0
: Field Strength (Needs a negative field strength or a negated function)f_cushion(x,y,z, P0)
P0
: Field Strength (Needs a negative field strength or a negated function)f_devils_curve(x,y,z, P0)
P0
: Field Strength (Needs a negative field strength or a negated function)f_devils_curve_2d(x,y,z, P0, P1, P2, P3, P4, P5)
. The f_devils_curve_2d
curve can be
extruded along the z axis, or using the SOR parameters it can be made into a surface of revolution.
The X and Y factors control the size of the central feature.
P0
: Field Strength (Needs a negative field strength or a negated function)P1
: X factorP2
: Y factorP3
: SOR SwitchP4
: SOR OffsetP5
: SOR Anglef_dupin_cyclid(x,y,z, P0, P1, P2, P3, P4, P5)
P0
: Field Strength (Needs a negative field strength or a negated function)P1
: Major radius of torusP2
: Minor radius of torusP3
: X displacement of torusP4
: Y displacement of torusP5
: Radius of inversionf_ellipsoid(x,y,z, P0, P1, P2)
. f_ellipsoid
generates spheres and ellipsoids.
Needs "threshold 1".
Setting these scaling parameters to 1/n gives exactly the same effect as performing
a scale operation to increase the scaling by n in the corresponding direction.
P0
: X scale (inverse)P1
: Y scale (inverse)P2
: Z scale (inverse)f_enneper(x,y,z, P0)
P0
: Field Strength (Needs a negative field strength or a negated function)f_flange_cover(x,y,z, P0, P1, P2, P3)
P0
: Spikiness. Set this to very low values to increase the spikes. Set it to 1 and you get a sphereP1
: Inverse size. Increase this to decrease the size of the surface. (The other parameters
also drastically affect the size, but this parameter has no other effects)P2
: Flange. Increase this to increase the flanges that appear between the spikes. Set it to 1 for no flangesP3
: Threshold. Setting this parameter to 1 and the threshold to zero has exactly the
same effect as setting this parameter to zero and the threshold to -1f_folium_surface(x,y,z, P0, P1, P2)
. A 'folium surface' looks something like a paraboloid glued to a plane.
P0
: Field Strength (Needs a negative field strength or a negated function)P1
: Neck width factor - the larger you set this, the narrower the neck where the
paraboloid meets the planeP2
: Divergence - the higher you set this value, the wider the paraboloid getsf_folium_surface_2d(x,y,z, P0, P1, P2, P3, P4, P5)
. The f_folium_surface_2d
curve can be
rotated around the X axis to generate the same 3d surface as the f_folium_surface
, or it can be extruded
in the Z direction (by switching the SOR switch off)
P0
: Field Strength (Needs a negative field strength or a negated function)P1
: Neck width factor - same as the 3d surface if you're revolving it around the Y axisP2
: Divergence - same as the 3d surface if you're revolving it around the Y axisP3
: SOR SwitchP4
: SOR OffsetP5
: SOR Anglef_glob(x,y,z, P0)
. One part of this surface would actually go off to
infinity if it were not restricted by the contained_by shape.
P0
: Field Strength (Needs a negative field strength or a negated function)f_heart(x,y,z, P0)
P0
: Field Strength (Needs a negative field strength or a negated function)f_helical_torus(x,y,z, P0, P1, P2, P3, P4, P5, P6, P7, P8, P9)
. With some sets of parameters, it looks like a torus with a helical winding around it. The
winding optionally has grooves around the outside.
P0
: Major radiusP1
: Number of winding loopsP2
: Twistiness of winding. When zero, each winding loop is separate. When set to one,
each loop twists into the next one. When set to two, each loop twists into the one after nextP3
: Fatness of winding?P4
: Threshold. Setting this parameter to 1 and the threshold to zero has s similar effect
as setting this parameter to zero and the threshold to 1P5
: Negative minor radius? Reducing this parameter increases the minor radius of the
central torus. Increasing it can make the torus disappear and be replaced by a vertical column.
The value at which the surface switches from one form to the other depends on several other parametersP6
: Another fatness of winding control?P7
: Groove period. Increase this for more groovesP8
: Groove amplitude. Increase this for deeper groovesP9
: Groove phase. Set this to zero for symmetrical groovesf_helix1(x,y,z, P0, P1, P2, P3, P4, P5, P6)
P0
: Number of helixes - e.g. 2 for a double helixP1
: Period - is related to the number of turns per unit lengthP2
: Minor radius (major radius > minor radius)P3
: Major radiusP4
: Shape parameter. If this is greater than 1 then the tube becomes fatter in the y directionP5
: Cross section typeP6
: Cross section rotation angle (degrees)f_helix2(x,y,z, P0, P1, P2, P3, P4, P5, P6)
. Needs a negated function
P0
: Not usedP1
: Period - is related to the number of turns per unit lengthP2
: Minor radius (minor radius > major radius)P3
: Major radiusP4
: Not usedP5
: Cross section typeP6
: Cross section rotation angle (degrees)f_hex_x(x,y,z, P0)
. This creates a grid of hexagonal cylinders stretching along
the z-axis. The fatness is controlled
by the threshold value. When this value equals 0.8660254 or cos(30) the sides will touch, because
this is the distance between centers. Negating the function will inverse the surface and create a
honey-comb structure. This function is also useful as pigment function.
P0
: No effect (but the syntax requires at least one parameter)f_hex_y(x,y,z, P0)
. This is function forms a lattice of infinite boxes
stretching along the z-axis. The fatness is
controlled by the threshold value. These boxes are rotated 60 degrees around centers, which
are 0.8660254 or cos(30) away from each other. This function is also useful as pigment function.
P0
: No effect (but the syntax requires at least one parameter)f_hetero_mf(x,y,z, P0, P1, P2, P3, P4, P5)
. f_hetero_mf (x,0,z)
makes multifractal height fields and patterns of '1/f' noise
'Multifractal' refers to their characteristic of having a fractal dimension which varies with
altitude. Built from summing noise of a number of frequencies, the heteromf parameters
determine how many, and which frequencies are to be summed.
An advantage to using these instead of a height_field {} from an image (a number of height
field programs output multifractal types of images) is that the heteromf function domain extends
arbitrarily far in the x and z directions so huge landscapes can be made without losing resolution
or having to tile a height field. Other functions of interest are f_ridged_mf
and f_ridge
.
P0
: H is the negative of the exponent of the basis noise frequencies used in building
these functions (each frequency f's amplitude is weighted by the factor fÊ- H ). In landscapes,
and many natural forms, the amplitude of high frequency contributions are usually less
than the lower frequencies.
P1
: Lacunarity' is the multiplier used to get from one 'octave' to the next. This
parameter affects the size of the frequency gaps in the pattern. Make this greater than 1.0P2
: Octaves is the number of different frequencies added to the fractal. Each 'Octave'
frequency is the previous one multiplied by 'Lacunarity', so that using a large number of
octaves can get into very high frequencies very quickly.P3
: Offset is the 'base altitude' (sea level) used for the heterogeneous scalingP4
: T scales the 'heterogeneity' of the fractal. T=0 gives 'straight 1/f' (no heterogeneous
scaling). T=1 suppresses higher frequencies at lower altitudesP5
: Generator type used to generate the noise3d. 0, 1, 2 and 3 are legal values.f_hunt_surface(x,y,z, P0)
P0
: Field Strength (Needs a negative field strength or a negated function)f_hyperbolic_torus(x,y,z, P0, P1, P2)
P0
: Field Strength (Needs a negative field strength or a negated function)P1
: Major radius: separation between the centers of the tubes at the closest pointP2
: Minor radius: thickness of the tubes at the closest pointf_isect_ellipsoids(x,y,z, P0, P1, P2, P3)
. The 'isect ellipsoids' surface is like the
intersection of three crossed ellipsoids, one oriented along each axis.
P0
: Eccentricity. When less than 1, the ellipsoids are oblate, when greater than 1 the
ellipsoids are prolate, when zero the ellipsoids are spherical (and hence the whole surface is a sphere)P1
: Inverse size. Increase this to decrease the size of the surfaceP2
: Diameter. Increase this to increase the size of the ellipsoidsP3
: Threshold. Setting this parameter to 1 and the threshold to zero has exactly
the same effect as setting this parameter to zero and the threshold to -1f_kampyle_of_eudoxus(x,y,z, P0, P1, P2)
. The 'kampyle of eudoxus' is like two
infinite planes with a dimple at the center.
P0
: Field Strength (Needs a negative field strength or a negated function)P1
: Dimple: When zero, the two dimples punch right through and meet at the center.
Non-zero values give less dimplingP2
: Closeness: Higher values make the two planes become closerf_kampyle_of_eudoxus_2d(x,y,z, P0, P1, P2, P3, P4, P5)
The 2d curve that generates
the above surface can be extruded in the Z direction or rotated about various axes by using
the SOR parameters.
P0
: Field Strength (Needs a negative field strength or a negated function)P1
: Dimple: When zero, the two dimples punch right through and meet at the center.
Non-zero values give less dimplingP2
: Closeness: Higher values make the two planes become closerP3
: SOR SwitchP4
: SOR OffsetP5
: SOR Anglef_klein_bottle(x,y,z, P0)
P0
: Field Strength (Needs a negative field strength or a negated function)f_kummer_surface_v1(x,y,z, P0)
. The Kummer surface consists of a collection of radiating rods.
P0
: Field Strength (Needs a negative field strength or a negated function)f_kummer_surface_v2(x,y,z, P0, P1, P2, P3)
. Version 2 of the kummer surface only looks
like radiating rods when the parameters are set to particular negative values.
For positive values it tends to look rather like a superellipsoid.
P0
: Field Strength (Needs a negative field strength or a negated function)P1
: Rod width (negative): Setting this parameter to larger negative values increases
the diameter of the rodsP2
: 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 numbers cause the rods to become narrower away from
the origin, and have a finite lengthP3
: Influences the length of half of the rods.
Changing the sign affects the other half of the rods.
0 has no effectf_lemniscate_of_gerono(x,y,z, P0)
. The "Lemniscate of Gerono" surface is an hourglass shape.
Two teardrops with their ends connected.
P0
: Field Strength (Needs a negative field strength or a negated function)f_lemniscate_of_gerono_2d(x,y,z, P0, P1, P2, P3, P4, P5)
. The 2d version of
the Lemniscate can be extruded in the Z direction, or used as a surface
of revolution to generate the equivalent of the 3d version, or revolved in different ways.
P0
: Field Strength (Needs a negative field strength or a negated function)P1
: Size: increasing this makes the 2d curve larger and less roundedP2
: Width: increasing this makes the 2d curve fatterP3
: SOR SwitchP4
: SOR OffsetP5
: SOR Anglef_mesh1(x,y,z, P0, P1, P2, P3, P4)
The overall thickness of the threads is controlled by the isosurface threshold, not
by a parameter. If you render a mesh1 with zero threshold, the threads have zero thickness
and are therefore invisible. Parameters P2 and P4 control the shape of the thread relative to
this threshold parameter.
P0
: Distance between neighboring threads in the x directionP1
: Distance between neighboring threads in the z directionP2
: Relative thickness in the x and z directionsP3
: Amplitude of the weaving effect. Set to zero for a flat gridP4
: Relative thickness in the y directionf_mitre(x,y,z, P0)
. The 'Mitre' surface looks a bit like an ellipsoid
which has been nipped at each end with a pair of sharp nosed pliers.
P0
: Field Strength (Needs a negative field strength or a negated function)f_nodal_cubic(x,y,z, P0)
. The 'Nodal Cubic' is something like what you'd
get if you were to extrude the Stophid2D curve along the X axis and then lean it over.
P0
: Field Strength (Needs a negative field strength or a negated function)f_noise3d(x,y,z)
f_noise_generator(x,y,z, P0)
P0
: Noise generator numberf_odd(x,y,z, P0)
P0
: Field Strength (Needs a negative field strength or a negated function)f_ovals_of_cassini(x,y,z, P0, P1, P2, P3)
. The Ovals of Cassini are a
generalization of the torus shape.
P0
: Field Strength (Needs a negative field strength or a negated function)P1
: Major radius - like the major radius of a torusP2
: Filling. Set this to zero, and you get a torus. Set this to a higher value and the hole in
the middle starts to heal up. Set it even higher and you get an ellipsoid with a dimpleP3
: Thickness. The higher you set this value, the plumper is the resultf_paraboloid(x,y,z, P0)
. This paraboloid is the surface of revolution that you get if
you rotate a parabola about the Y axis.
P0
: Field Strength (Needs a negative field strength or a negated function)f_parabolic_torus(x,y,z, P0, P1, P2)
P0
: Field Strength (Needs a negative field strength or a negated function)P1
: Major radiusP2
: Minor radiusf_ph(x,y,z)
= atan2( sqrt( x*x + z*z ), y )
When used alone, the "PH" function gives a surface that consists of all points that are at a
particular latitude, i.e. a cone. If you use a threshold of zero (the default) this gives a cone of
width zero, which is invisible. Also look at f_th
and f_r
f_pillow(x,y,z, P0)
P0
: Field Strengthf_piriform(x,y,z, P0)
. The piriform surface looks rather like half a lemniscate.
P0
: Field Strengthf_piriform_2d(x,y,z, P0, P1, P2, P3, P4, P5, P6)
. The 2d version of the "Piriform"
can be extruded in the Z direction, or used as a surface of revolution to generate the
equivalent of the 3d version.
P0
: Field Strength (Needs a negative field strength or a negated function)P1
: Size factor 1: increasing this makes the curve largerP2
: Size factor 2: making this less negative makes the curve larger but also thinnerP3
: Fatness: increasing this makes the curve fatterP4
: SOR SwitchP5
: SOR OffsetP6
: SOR Anglef_poly4(x,y,z, P0, P1, P2, P3, P4)
. This f_poly4
can be used to generate the surface
of revolution of any polynomial up to degree 4.
To put it another way: If we call the
parameters A, B, C, D, E; then this function generates
the surface of revolution formed by revolving "x = A + By + Cy2 + Dy3 + Ey4" around the Y axis.
P0
: ConstantP1
: Y coefficientP2
: Y2 coefficientP3
: Y3 coefficientP4
: Y4 coefficientf_polytubes(x,y,z, P0, P1, P2, P3, P4, P5)
. The 'Polytubes' surface consists of
a number of tubes. Each tube follows a 2d curve which is
specified by a polynomial of degree 4 or less. If we look at the parameters, then this function
generates "P0" tubes which all follow the equation " x = P1 + P2y + P3y2 + P4y3 + P5y4 "
arranged around the Y axis.
This function needs a positive threshold (fatness of the tubes).
P0
: Number of tubesP1
: ConstantP2
: Y coefficientP3
: Y2 coefficientP4
: Y3 coefficientP5
: Y4 coefficientf_quantum(x,y,z, P0)
. It resembles the shape of the electron density cloud
for one of the d orbitals.
P0
: Not used, but requiredf_quartic_paraboloid(x,y,z, P0)
. The 'Quartic Paraboloid' is similar to a paraboloid, but has a squarer shape.
P0
: Field Strength (Needs a negative field strength or a negated function)f_quartic_saddle(x,y,z, P0)
. The 'Quartic saddle' is similar to a saddle, but has a squarer shape.
P0
: Field Strengthf_quartic_cylinder(x,y,z, P0, P1, P2)
. The 'Quartic cylinder' looks a bit like a cylinder that's swallowed an egg.
P0
: Field Strength (Needs a negative field strength or a negated function)P1
: Diameter of the "egg"P2
: Controls the width of the tube and the vertical scale of the "egg"f_r(x,y,z)
= sqrt( x*x + y*y + z*z )
When used alone, the "R" function gives a surface that consists of all the points that are
a specific distance (threshold value) from the origin, i.e. a sphere. Also look at f_ph
and f_th
f_ridge(x,y,z, P0, P1, P2, P3, P4, P5)
. This function is mainly intended
for modifying other surfaces as you might use a height field or to use as pigment function.
Other functions of interest are f_hetero_mf
and f_ridged_mf
.
P0
: LambdaP1
: OctavesP2
: OmegaP3
: OffsetP4
: RidgeP5
: Generator type used to generate the noise3d. 0, 1, 2 and 3 are legal values.f_ridged_mf(x,y,z, P0, P1, P2, P3, P4, P5)
. The "Ridged Multifractal" surface can be used to create multifractal height fields and patterns.
'Multifractal' refers to their characteristic of having a fractal dimension which varies with altitude.
They are built from summing noise of a number of frequencies. The f_ridged_mf parameters determine
how many, and which frequencies are to be summed, and how the different frequencies are weighted
in the sum.
An advantage to using these instead of a height_field{}
from an image is that the ridgedmf function
domain extends arbitrarily far in the x and z directions so huge landscapes can be made without losing
resolution or having to tile a height field. Other functions of interest are f_hetero_mf
and f_ridge
.
P0
: H is the negative of the exponent of the basis noise frequencies used in building these
functions (each frequency f's amplitude is weighted by the factor fE- H ). When H is 1, the
fractalization is relatively smooth. As H nears 0, the high frequencies contribute equally with
low frequenciesP1
: Lacunarity is the multiplier used to get from one "octave" to the next in the "fractalization".
P2
: Octaves is the number of different frequencies added to the fractal. Each octave
frequency is the previous one multiplied by "Lacunarity". So, using a large number of octaves can
get into very high frequencies very quicklyP3
: Offset gives a fractal whose fractal dimension changes from altitude to altitude. The high
frequencies at low altitudes are more damped than at higher altitudes, so that lower altitudes are
smoother than higher areasP4
: Gain weights the successive contributions to the accumulated fractal result to make
creases stick up as ridgesP5
: Generator type used to generate the noise3d. 0, 1, 2 and 3 are legal values.f_rounded_box(x,y,z, P0, P1, P2, P3)
. The Rounded Box is defined in a cube
from <-1, -1, -1> to <1, 1, 1>. By changing the "
Scale" parameters, the size can be adjusted, without affecting the Radius of curvature.
P0
: Radius of curvature. Zero gives square corners, 0.1 gives corners that match "sphere
{0, 0.1}"P1
: Scale xP2
: Scale yP3
: Scale zf_sphere(x,y,z, P0)
P0
: radius of the spheref_spikes(x,y,z, P0, P1, P2, P3, P4)
P0
: Spikiness. Set this to very low values to increase the spikes. Set it to 1 and you get a sphereP1
: Hollowness. Increasing this causes the sides to bend in moreP2
: Size. Increasing this increases the size of the objectP3
: Roundness. This parameter has a subtle effect on the roundness of the spikesP4
: Fatness. Increasing this makes the spikes fatterf_spikes_2d(x,y,z, P0, P1, P2, P3)
=2-D function : f = f( x, z ) - y
P0
: Height of central spikeP1
: Frequency of spikes in the X directionP2
: Frequency of spikes in the Z directionP3
: Rate at which the spikes reduce as you move away from the centerf_spiral(x,y,z, P0, P1, P2, P3, P4, P5)
P0
: Distance between windingsP1
: ThicknessP2
: Outer diameter of the spiral. The surface behaves as if it is contained_by a sphere of this diameterP3
: Not usedP4
: Not usedP5
: Cross section typef_steiners_roman(x,y,z, P0)
. The "Steiners Roman" is composed of four identical
triangular pads which together make up a sort of rounded tetrahedron. There are creases along
the X, Y and Z axes where the pads meet.
P0
: Field Strength (Needs a negative field strength or a negated function)f_strophoid(x,y,z, P0, P1, P2, P3)
. The "Strophoid" is like an infinite plane with a bulb sticking out of it.
P0
: Field Strength (Needs a negative field strength or a negated function)P1
: Size of bulb. Larger values give larger bulbs. Negative values give a bulb on the other
side of the planeP2
: Sharpness. When zero, 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 pimpleP3
: Flatness. Higher values make the top end of the bulb fatterf_strophoid_2d(x,y,z, P0, P1, P2, P3, P4, P5, P6)
. The 2d strophoid curve can be extruded in the Z direction or rotated about various axes
by using the SOR parameters.
P0
: Field StrengthP1
: Size of bulb. Larger values give larger bulbs. Negative values give a bulb on the
other side of the planeP2
: Sharpness. When zero, 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 pimpleP3
: Fatness. Higher values make the top end of the bulb fatterP4
: SOR SwitchP5
: SOR OffsetP6
: SOR Anglef_superellipsoid(x,y,z, P0, P1)
. Needs a negative field strength or a negated function.
P0
: east-west exponentxP1
: north-south exponentf_th(x,y,z)
= atan2( x, z )
f_th()
is a function that is only useful when combined with other surfaces.
It produces a value which is equal to the "theta" angle, in radians, at any point. The
theta angle is like the longitude co-ordinate on the Earth. It stays the same as you move
north or south, but varies from east to west. Also look at f_ph
and f_r
f_torus(x,y,z, P0, P1)
P0
: Major radiusP1
: Minor radiusf_torus2(x,y,z, P0, P1, P2)
. This is different from the f_torus function
which just has the major and minor radii as parameters.
P0
: Field Strength (Needs a negative field strength or a
negated function)P1
: Major radiusP2
: Minor radiusf_torus_gumdrop(x,y,z, P0)
. The "Torus Gumdrop" surface is something like
a torus with a couple of gumdrops hanging off the end.
P0
: Field Strength (Needs a negative field strength or a negated function)f_umbrella(x,y,z, P0)
P0
: Field Strength (Needs a negative field strength or a negated function)f_witch_of_agnesi(x,y,z, P0, P1, P2, P3, P4, P5)
. The "Witch of Agnesi" surface looks something like a witches hat.
P0
: Field Strength (Needs a negative field strength or a negated function)P1
: Controls the width of the spike. The height of the spike is always about 1 unitf_witch_of_agnesi_2d(x,y,z, P0, P1, P2, P3, P4, P5)
. The 2d version of the "Witch of Agnesi"
curve can be extruded in the Z direction or rotated about various axes by use of the SOR parameters.
P0
: Field Strength (Needs a negative field strength or a negated function)P1
: Controls the size of the spikeP2
: Controls the height of the spikeP3
: SOR SwitchP4
: SOR OffsetP5
: SOR Angle
|