7.7.2  functions.inc - Funciones Internas

He aquí una lista de las funciones internas en el orden en que aparecen en el archivo de inclusión "functions.inc"

f_algbr_cyl1(x,y,z, P0, P1, P2, P3, P4). Un cilindro algebraico es lo que se obtiene si toma cualquier curva 2d y la genera en 3d. La curva 2d es sencillamente proyectada a lo largo del tercer eje, en este caso el eje z.
Con el switch SOR activado (en on), la curva con figura de ocho será rotada alrededor del eje z.

f_algbr_cyl2(x,y,z, P0, P1, P2, P3, P4). Un cilindro algebraico es lo que se obtiene si toma cualquier curva 2d y la genera en una 3d. La curva 2d es sencillamente proyectada a lo largo del tercer eje, en este caso el eje z.  Con el switch SOR activado (en on), la curva de sección transversal será rotada alrededor del eje Y, en vez de ser proyectada sobre el eje Z.

f_algbr_cyl3(x,y,z, P0, P1, P2, P3, P4). Un cilindro algebraico es lo que se obtiene si toma cualquier curva 2d y la genera en una 3d. La curva 2d es sencillamente proyectada a lo largo del tercer eje, en este caso el eje z. Con el switch SOR activado (en on), la curva de sección transversal será rotada alrededor del eje de  Y, en vez de ser proyectada sobre el eje Z.

f_algbr_cyl4(x,y,z, P0, P1, P2, P3, P4). Un cilindro algebraico es lo que se obtiene si toma cualquier curva 2d y la genera en una 3d. La curva 2d es sencillamente proyectada a lo largo del tercer eje, en este caso el eje z. Con el switch SOR activado (en on), la curva de sección transversal será rotada alrededor del eje de las Y, en vez de ser proyectada sobre el eje de las Z.

f_bicorn(x,y,z, P0, P1). La superficie es una superficie de revolución.

f_bifolia(x,y,z, P0, P1). La superficie bifoliar (o de doble hoja) se parece a la parte superior de un paraboloide limitado en su parte inferior por otro paraboloide.

f_blob(x,y,z, P0, P1, P2, P3, P4). Esta función genera burbujas que son similares a las burbujas de CSG (Geometría Sólida Constructiva) con dos componentes esféricos. Esta función sólo parece trabajar con valores negativos del umbral de la isosuperficie.

f_blob2(x,y,z, P0, P1, P2, P3). La superficie es similar a una burbuja CSG de dos componentes esféricos.

f_boy_surface(x,y,z, P0, P1). Para esta superficie ayudará que se especifique poca fuerza de campo, puesto que de otra manera la superficie tiene una tendencia a romperse o desaparecer completamente. Tiene el efecto colateral de hacer los renderizados más largos.

f_comma(x,y,z, P0). La superficie 'coma' es de forma muy parecida a una coma.

f_cross_ellipsoids(x,y,z, P0, P1, P2, P3). La superficie 'cross ellipsoids' es como la unión de tres elipsoides cruzadas, cada una orientada a lo largo de cada eje.

f_crossed_trough(x,y,z, P0)

f_cubic_saddle(x,y,z, P0). Para esta superficie ayudará que se especifique poca fuerza de campo, puesto que de otra manera la superficie tiene una tendencia a romperse o desaparecer completamente.

f_cushion(x,y,z, P0)

f_devils_curve(x,y,z, P0)

f_devils_curve_2d(x,y,z, P0, P1, P2, P3, P4, P5). La curva f_devils_curve_2d puede ser extrusionada a lo largo del eje Z, o usando los parámetros SOR, puede convertirse en una superficie de revolución. Los factores X e Y controlan el tamaño de la característica central.

f_dupin_cyclid(x,y,z, P0, P1, P2, P3, P4, P5)

f_ellipsoid(x,y,z, P0, P1, P2). f_ellipsoid genera esferas y elipsoides. Necesita "threshold 1" (umbral).
Ajustar estos parámetros de escala a 1/n da exactamente el mismo resultado que ejecutar una operación para incrementar la escala por n en la dirección correspondiente.

f_enneper(x,y,z, P0)

f_flange_cover(x,y,z, P0, P1, P2, P3)

f_folium_surface(x,y,z, P0, P1, P2). Una superficie 'folium' se parece a un paraboloide pegado a un plano

f_folium_surface_2d(x,y,z, P0, P1, P2, P3, P4, P5). La curva f_folium_surface_2d puede rotarse alrededor del eje X para generar la misma superficie 3d f_folium_surface, o puede ser extrusionada en la dirección Z (cambiando SOR switch a off)

f_glob(x,y,z, P0). Una parte de esta superficie seguiría hasta el infinito si no fuera restringida por una forma contenedora (contained_by).

f_heart(x,y,z, P0)

f_helical_torus(x,y,z, P0, P1, P2, P3, P4, P5, P6, P7, P8, P9). Con ciertas combinaciones de parámetros, tiene la apariencia de un toroide con una espiral helicoidal alrededor. Opcionalmente, la espiral tiene canales alrededor de la parte externa.

f_helix1(x,y,z, P0, P1, P2, P3, P4, P5, P6)

f_helix2(x,y,z, P0, P1, P2, P3, P4, P5, P6). Necesita una función contraria

f_hex_x(x,y,z, P0). Crea una malla de cilindros hexagonales extendida a lo largo del eje z. La anchura se controla por el valor del umbral. Cuando este valor iguala 0.8660254 ó cos(30) se tocarán los lados, porque ésta es la distancia entre los centros. Negar la función invertirá la superficie y creará una estructura de panal. Esta función también es útil como función de pigmento.

f_hex_y(x,y,z, P0). Esta función forma un grupo parcialmente ordenado (lattice) de cajas infinitas que se extienden a lo largo del eje de las z. El espesor está controlado por el valor del umbral. Estas cajas son rotadas 60 grados alrededor de sus centros, que se hallan a 0.8660254 ó cos(30) una de otra. Esta función también es útil como función de pigmento.

f_hetero_mf(x,y,z, P0, P1, P2, P3, P4, P5). f_hetero_mf (x,0,z) crea campos de altura multifractales y patrones de ruido de '1/f'. 

'Multifractal' se refiere la característica de tener una dimensión fractal que varía con la altitud. Construidos a partir de la sumatoria de un número de frecuencias, los parámetros hetero_mf determinan cuántas y cuáles son las frecuencias que se suman. 

Una ventaja de usar estos (parámetros) en vez de un campo de altura ( height_field {} } proveniente de una imagen (varios programas de campos de altura proporcionan imágenes de tipo multifractal) es que el dominio de la función hetero_mf se extiende arbitrariamente a considerable distancia sobre las direcciones de los ejes x y z, por eso pueden hacerse paisajes inmensos sin perder resolución o sin tener que repetir el campo de altura. Otras funciones de interés son f_ridged_mf y f_ridge.

f_hunt_surface(x,y,z, P0)

f_hyperbolic_torus(x,y,z, P0, P1, P2)

f_isect_ellipsoids(x,y,z, P0, P1, P2, P3). La superficie 'isect ellipsoids' es como la intersección de tres elipsoides cruzadas, cada una orientada a lo largo de cada eje.

f_kampyle_of_eudoxus(x,y,z, P0, P1, P2). La 'kampyle of eudoxus' (Kampilita es un compuesto químico de plomo que viene dada en prismas hexagonales) es como dos planos infinitos con un hoyuelo en el centro.

f_kampyle_of_eudoxus_2d(x,y,z, P0, P1, P2, P3, P4, P5) La curva 2d que genera la superficie anterior puede ser extrusionada en dirección z o rotada alrededor de varios ejes usando los parámetros SOR

f_klein_bottle(x,y,z, P0)

f_kummer_surface_v1(x,y,z, P0). La superficie Kummer consiste en una colección de varillas radiadas.

f_kummer_surface_v2(x,y,z, P0, P1, P2, P3). Otra versión la superficie kummer, sólo que ésta parece como varillas radiadas cuando los parámetros se ajustan a valores negativos particulares. Para valores positivos, tiende a parecerse más a un superelipsoide.

f_lemniscate_of_gerono(x,y,z, P0). La superficie "Lemniscata de Gerono" es una forma de reloj de arena. Dos gotas con sus extremos conectados.

f_lemniscate_of_gerono_2d(x,y,z, P0, P1, P2, P3, P4, P5). La versión 2d de Lemniscata puede ser extrusionada en la dirección z, o utilizada como una superficie de revolución para generar el equivalente de la versión 3d, o revolucionada en diferentes maneras.

f_mesh1(x,y,z, P0, P1, P2, P3, P4) El espesor general de los filamentos está controlado por el umbral de la isosuperficie, no por un parámetro. Si renderiza una a mesh1 con umbral 0, los filamentos tienen espesor 0 y son por esta razón invisibles. Los parámetros P2 y P4 controlan la forma del filamento en relación con este parámetro de límite.

f_mitre(x,y,z, P0). La superficie 'Mitre' se parece un poco a un elipsoide que ha sido cortado en cada punta con un par de tenazas muy afiladas.

f_nodal_cubic(x,y,z, P0). (Nota: Una curva cúbica es una curva de tercer grado) La 'Nodal Cubic' es algo parecido a lo que se obtendría al extrusionar una curva Stophid2D a lo largo del eje de las x y luego dejarla inclinada.

f_noise3d(x,y,z)

f_noise_generator(x,y,z, P0)

f_odd(x,y,z, P0)

f_ovals_of_cassini(x,y,z, P0, P1, P2, P3). Los Óvalos de Cassini son una generalización de la forma del toroide.

f_paraboloid(x,y,z, P0). Este paraboloide es la superficie de revolución que se obtiene si se rota una parábola alrededor del eje Y.

f_parabolic_torus(x,y,z, P0, P1, P2)

f_ph(x,y,z) = atan2( sqrt( x*x + z*z ), y )
Cuando se usa aisladamente, la función "PH" genera una superficie que consiste de todos los puntos que se hallan a una latitud particular, por ejemplo, un cono. Si utiliza un límite de 0, (el valor por definición) esto le da al cono un ancho de 0, lo que lo hace invisible. Véase también f_th y f_r

f_pillow(x,y,z, P0)

f_piriform(x,y,z, P0). La superficie piriforme parece más bien la mitad de un lemniscate.

f_piriform_2d(x,y,z, P0, P1, P2, P3, P4, P5, P6). La versión 2d de "Piriform" puede ser extrusionada en la dirección Z, o usada como una superficie de revolución para generar el equivalente de la versión 3d.

f_poly4(x,y,z, P0, P1, P2, P3, P4). Esta f_poly4 puede ser usada para generar la superficie de revolución de cualquier polinomio hasta de grado 4.
Para ponerlo de otra manera: Si llamamos a los parámetros A, B, C, D, E; entonces esta función genera la superficie de revolución formada por las revoluciones de "x = A + By + Cy2 + Dy3 + Ey4" alrededor del eje Y.

f_polytubes(x,y,z, P0, P1, P2, P3, P4, P5). La superficie 'Polytubes' (Politubos) consiste de un número de tubos. Cada tubo sigue una curva 2d, la cual está especificada por un polinomio de grado 4 o menor. Si observamos los parámetros, entonces esta función genera tubos "P0" que siguen la ecuación " x = P1 + P2y + P3y2 + P4y3 + P5y4 " ordenados alrededor del eje Y.
Esta función necesita un límite positivo (espesor de los tubos).

f_quantum(x,y,z, P0). Tiene resemblanza con la forma de la nube de densidad de electrones para uno de los orbitales d.

f_quartic_paraboloid(x,y,z, P0). El Paraboloide Cuártico es similar a un paraboloide, pero con forma más cuadrada.

f_quartic_saddle(x,y,z, P0). La 'Silla' Cuártica es similar a una silla, pero con una forma más cuadrada.

f_quartic_cylinder(x,y,z, P0, P1, P2). El Cilindro Cuártico se parece un poco a un cilindro que se ha tragado un huevo.

f_r(x,y,z) = sqrt( x*x + y*y + z*z ) (cuadrado)
Cuando se usa aisladamente, la función "R" proporciona una superficie que consiste de todos los puntos que están a una distancia específica (valor del límite) del origen, es decir, una esfera. Véase también f_ph y f_th

f_ridge(x,y,z, P0, P1, P2, P3, P4, P5). Esta función está dirigida principalmente a la modificación de otras superficies porque se puede usar un campo de alturas (height_field), o como función de pigmento. Otras funciones de interés son f_hetero_mf y f_ridged_mf.

f_ridged_mf(x,y,z, P0, P1, P2, P3, P4, P5). La superficie "Ridged Multifractal" puede usarse para crear campos de altura multifractales y patrones. 'Multifractal' se refiere a su característica de poseer una dimensión fractal que varía con la altitud. Se construyen con la sumatoria de ruidos de un número de frecuencias. Los parámetros f_ridged_mf determinan cuántas y cuáles son las frecuencias que van a ser sumadas, y cómo las diferentes frecuencias son evaluadas en la sumatoria.
Una ventaja de usar éstas en vez de un height_field{} de una imagen es que el dominio de la función ridged_mf se extiende arbitrariamente a considerable distancia sobre las direcciones x y z, por eso se pueden hacer paisajes muy grandes sin perder resolución o tener que repetir el campo de altura. Otras funciones de interés son f_hetero_mf y f_ridge.

f_rounded_box(x,y,z, P0, P1, P2, P3). La caja redondeada se define en un cubo de <-1, -1, -1> a <1, 1, 1>. Cambiando los parámetros de la escala puede ajustarse el tamaño, sin afectar el Radio de la curvatura.

f_sphere(x,y,z, P0)

f_spikes(x,y,z, P0, P1, P2, P3, P4)

f_spikes_2d(x,y,z, P0, P1, P2, P3) =2-D function : f = f( x, z ) - y

f_spiral(x,y,z, P0, P1, P2, P3, P4, P5)

f_steiners_roman(x,y,z, P0). El "Steiners Roman" está compuesto de cuatro cojinetes triangulares que juntos, conforman una suerte de tetraedro redondeado. Hay bordes a lo largo de los ejes X, Y, y Z, donde se encuentran los cojinetes.

f_strophoid(x,y,z, P0, P1, P2, P3). El "Strophoid" es como un plano infinito con un bulbo saliente pegado.

f_strophoid_2d(x,y,z, P0, P1, P2, P3, P4, P5, P6). La curva 2d strophoid puede ser extrusionada en dirección de Z o rotada alrededor de varios ejes usando los parámetros SOR.

f_superellipsoid(x,y,z, P0, P1). (Necesita una fuerza de campo negativa o función contraria)

f_th(x,y,z) = atan2( x, z )
f_th() es una función útil solamente cuando se combina con otras superficies.
Produce un valor equivalente al del ángulo "theta", en radianes, en cualquier punto. El ángulo theta es como la coordenada de longitud sobre la Tierra. Permanece igual si se mueve de norte a sur, pero varía de este a oeste. Véase también f_ph y f_r

f_torus(x,y,z, P0, P1)

f_torus2(x,y,z, P0, P1, P2). Ésta es diferente de la función f_torus, la cual tiene como parámetro a los radios mayor y menor.

f_torus_gumdrop(x,y,z, P0). La superficie toroide "Gumdrop" es algo parecido a un torus con un par de caramelos de gelatina colgando del extremo.

f_umbrella(x,y,z, P0)

f_witch_of_agnesi(x,y,z, P0, P1, P2, P3, P4, P5). La superficie "Bruja de Agnes" se parece al sombrero de una bruja.

f_witch_of_agnesi_2d(x,y,z, P0, P1, P2, P3, P4, P5). La versión 2d de la curva "Bruja de Agnes" puede ser extrusionada en la dirección Z o rotada alrededor de varios ejes mediante el uso de los parámetros SOR.