parametric3d             package:misc3d             R Documentation

_D_r_a_w _a _3_D _P_a_r_a_m_e_t_r_i_c _P_l_o_t

_D_e_s_c_r_i_p_t_i_o_n:

     Plot a two-parameter surface in three dimensions.

_U_s_a_g_e:

       parametric3d(fx, fy, fz, u, v, umin, umax, vmin, vmax, n = 100,
                    color = "white", color2 = NA, alpha = 1,
                    fill = TRUE, col.mesh = if (fill) NA else color,
                    smooth = 0, material = "default", 
                    add = FALSE, draw = TRUE, engine = "rgl", ...)

_A_r_g_u_m_e_n_t_s:

fx,fy,fz: vectorized functions of u and v to compute the 'x', 'y', and
          'z' coordinates.

       u: numeric vector of u values.

       v: numeric vector of v values.

    umin: numeric; the minimum value of u. Ignored in 'u' is supplied.

    umax: numeric; the maximum value of u. Ignored in 'u' is supplied.

    vmin: numeric; the minimum value of v. Ignored in 'v' is supplied.

    vmax: numeric; the maximum value of v. Ignored in 'v' is supplied.

       n: the number of equally spaced 'u' and 'v' values to use. 
          Ignored in 'u' and 'v' are supplied.

   color: color to use for the surface. Can also be a function of three
          arguments.  This is called with three arguments, the
          coordinates of the midpoints of the triangles making up the
          surface. The function should return a vector of colors to use
          for the triangles.

  color2: opposite face color; only used for "standard" and "grid"
          engines.

   alpha: alpha channel level, a number between 0 and 1..

    fill: logical; if 'TRUE', drawing should use filled surfaces;
          otherwise a wire frame should be drawn.

col.mesh: color to use for the wire frame.

  smooth: integer specifying Phong shading level; currently only used
          by "standard" and "grid" engines.

material: material specification; currently only used by "standard" and
          "grid" engines.  Currently possible values are the character
          strings "dull", "shiny", "metal", and "default".

     add: logical; if 'TRUE', add to current graph.

    draw: logical; if 'TRUE', draw the results; otherwise, return
          contour triangles.

  engine: character; currently "rgl", "standard", "grid" or "none"; for
          "none" the computed triangles are returned.

     ...: additional rendering arguments, e.g. material and texture
          properties for the "rgl" engine.   See documentation for
          'drawScene' and 'drawScene.rgl'

_D_e_t_a_i_l_s:

     Analogous to Mathematica's 'Param3D'.  Evaluates the functions
     'fx', 'fy', and 'fz' specifying the coordinates of the surface at
     an equally spaced grid of values for the parameters 'u' and 'v'.

_V_a_l_u_e:

     For the "rgl" engine the returned value is 'NULL'. For the
     "standard" and "grid" engines the returned value is the viewing
     transformation as returned by 'persp'.  For the engine "none", or
     when 'draw' is not true, the returned value is a structure
     representing the triangles making up the surface.

_N_o_t_e:

     The "rgl" engine now uses the standard rgl coordinates instead of
     negating 'y' and swapping 'y' and 'z'. If you need to reproduce
     the previous behavior you can use
     'options(old.misc3d.orientation=TRUE)'.

     Transparency only works properly in the "rgl" engine.  For
     standard or grid graphics on pdf or quartz devices using alpha
     levels less than 1 does work but the triangle borders show as a
     less transparent mesh.

_R_e_f_e_r_e_n_c_e_s:

     Daniel Adler, Oleg Nenadic and Walter Zucchini (2003) RGL: A
     R-library for 3D visualization with OpenGL

_S_e_e _A_l_s_o:

     'rgl.surface', 'rgl.material','scatterplot3d'.

_E_x_a_m_p_l_e_s:

       #Example 1: Ratio-of-Uniform sampling region of bivariate normal
       parametric3d(fx = function(u, v) u * exp(-0.5 * (u^2 + v^2 -
                           2 * 0.75 * u * v)/sqrt(1-.75^2))^(1/3),
                    fy = function(u, v) v * exp(-0.5 * (u^2 + v^2 -
                           2 * 0.75 * u * v)/sqrt(1-.75^2))^(1/3),
                    fz = function(u, v) exp(-0.5 * (u^2 + v^2 - 2 * 0.75 * u * 
                           v)/sqrt(1-.75^2))^(1/3),
                    umin = -20, umax = 20, vmin = -20, vmax = 20, 
                    n = 100) 
       parametric3d(fx = function(u, v) u * exp(-0.5 * (u^2 + v^2 -
                           2 * 0.75 * u * v)/sqrt(1-.75^2))^(1/3),
                    fy = function(u, v) v * exp(-0.5 * (u^2 + v^2 -
                           2 * 0.75 * u * v)/sqrt(1-.75^2))^(1/3),
                    fz = function(u, v) exp(-0.5 * (u^2 + v^2 - 2 * 0.75 * u * 
                           v)/sqrt(1-.75^2))^(1/3),
                    u = qcauchy((1:100)/101), v = qcauchy((1:100)/101))      
       parametric3d(fx = function(u, v) u * exp(-0.5 * (u^2 + v^2 -
                           2 * 0.75 * u * v)/sqrt(1-.75^2))^(1/3),
                    fy = function(u, v) v * exp(-0.5 * (u^2 + v^2 -
                           2 * 0.75 * u * v)/sqrt(1-.75^2))^(1/3),
                    fz = function(u, v) exp(-0.5 * (u^2 + v^2 - 2 * 0.75 * u * 
                           v)/sqrt(1-.75^2))^(1/3),
                    u = qcauchy((1:100)/101), v = qcauchy((1:100)/101),
                    engine = "standard", scale = FALSE, screen = list(x=-90, y=20))

       #Example 2: Ratio-of-Uniform sampling region of Bivariate t      
       parametric3d(fx = function(u,v) u*(dt(u,2) * dt(v,2))^(1/3), 
                    fy = function(u,v) v*(dt(u,2) * dt(v,2))^(1/3),
                    fz = function(u,v) (dt(u,2) * dt(v,2))^(1/3), 
                    umin = -20, umax = 20, vmin = -20, vmax = 20, 
                    n = 100, color = "green")
       parametric3d(fx = function(u,v) u*(dt(u,2) * dt(v,2))^(1/3),
                    fy = function(u,v) v*(dt(u,2) * dt(v,2))^(1/3),
                    fz = function(u,v) (dt(u,2) * dt(v,2))^(1/3),
                    u = qcauchy((1:100)/101), v = qcauchy((1:100)/101),
                    color = "green")
       parametric3d(fx = function(u,v) u*(dt(u,2) * dt(v,2))^(1/3),
                    fy = function(u,v) v*(dt(u,2) * dt(v,2))^(1/3),
                    fz = function(u,v) (dt(u,2) * dt(v,2))^(1/3),
                    u = qcauchy((1:100)/101), v = qcauchy((1:100)/101),
                    color = "green", engine = "standard", scale = FALSE)

       #Example 3: Surface of revolution
       parametric3d(fx = function(u,v) u,
                    fy = function(u,v) sin(v)*(u^3+2*u^2-2*u+2)/5,
                    fz = function(u,v) cos(v)*(u^3+2*u^2-2*u+2)/5,
                    umin = -2.3, umax = 1.3, vmin = 0, vmax = 2*pi)
       parametric3d(fx = function(u,v) u,
                    fy = function(u,v) sin(v)*(u^3+2*u^2-2*u+2)/5,
                    fz = function(u,v) cos(v)*(u^3+2*u^2-2*u+2)/5,
                    umin = -2.3, umax = 1.3, vmin = 0, vmax = 2*pi,
                    engine = "standard", scale = FALSE,
                    color = "red", color2 = "blue", material = "shiny")

