surfaces

operators to generate some important classes of surfaces, including the profile product surfaces, the rotational surfaces, the ruled surfaces, and the tensor product surfaces

  • Beziermanifold generator of B´ezier d-manifolds in IEn, for any dimensions/degrees
    Pre/Post conds (degrees::isseqof:isnat)(controlpoints::isseq)
    => (isseqof:isfun)
    Example see Script 12.4.1

  • Beziersurface generator of B´ezier surfaces of arbitrary degree
    Pre/Post conds (controlpoints::ismatof:ispoint) => (isseqof:isfun)
    Example MAP:(BezierSurface:pointArray):((sqr ~ intervals:1):10)

  • Bilinearsurface generator of coord functions of a bilinear surface in IEn
    Pre/Post conds (controlpoints::ismatof:ispoint) => (isseqof:isfun)
    Example def mapping = bilinearsurface:
    < < < 0,0,0>,< 2,-4,2>>,< < 0,3,1>,< 4,0,0>>>;

  • map:mapping:((sqr~intervals:1):10)
    Biquadraticsurface generator of coord functions of a biquadratic surface in IEn
    Pre/Post conds (controlpoints::ismatof:ispoint) => (isseqof:isfun)
    Example biquadraticSurface:< < < 0,0,0>, < 2,0,1>,< 3,1,1>>,
    < < 1,3,-1>,< 3,2,0>,< 4,2,0>>, < < 0,9,0>, < 2,5,1>,< 3,3,2>> >;

  • map:mapping:((sqr~intervals:1):10)
    Conicalsurface generalized cone, with apex a and curve beta crossing all the rules
    Pre/Post conds (a::isseqof:isreal; beta::isseqof:isfun) => (isseqof:isfun)
    Example map:(conicalsurface:< < 0,0,1>,beta>):((sqr~intervals:1):10)

  • Cylindricalsurface generalized cylinder, with direction a and curve beta
    crossing all the rules
    Pre/Post conds (a::isseqof:isreal; beta::isseqof:isfun) => (isseqof:isfun)
    Example map:(cylindricalsurface:< < 0,0,1>,beta>):((sqr~intervals:1):10)

  • Hermitesurface generator of coord functions of the bicubic Hermite surface
    Pre/Post conds (controlpoints::ismatof:ispoint) => (isseqof:isfun)
    Example map:(hermitesurface:< 4 × 4 matrix of points >):domain2d

  • Profileprodsurface returns the coord functions of a profile product surface
    Pre/Post conds (profile, section::isseqof:isfun) => (isseqof:isfun)
    Example map:(profileprodsurface:< alpha, beta >):domain2d

  • Rotationalsurface generates a surface by rotation of profilecurve.The opening
    angle of the rotational patch depends on the 2nd domain parameter
    Pre/Post conds (profilecurve::isseqof:isfun) => (isseqof:isfun)
    Example map:(rotationalsurface:(bezier:s1:< < 0,0>,< 8,5>,< 0,10>>)):
    (intervals:1:12 * intervals:(2*pi):24)

  • Ruledsurface surface from profile alpha(u) and tangent vectors beta(u)
    Pre/Post conds (alpha,beta::isseqof:isfun) => (isseqof:isfun)
    Example map:(ruledsurface:< c1, c2 vectdiff c1 >):domain2d

  • Tensorprodsurface tensor product surface generator
    Pre/Post conds (ubasis,vbasis::isseqof:isfun)(points::ismatof:ispoint)
    => (isseqof:isfun)
    Example (tensorprodsurface:< bernsteinbasis:s1:3, bernsteinbasis:s1:3>:controlpoints)

  • Thinsolid thin solid generated by a surface
    Pre/Post conds (surface::isseqof:isfun) => (isseqof:isfun)
    Example def solidmapping = (thinsolid ~ coonspatch):< su0,su1,s0v,s1v>

PLaSM is Free Software and may be distributed under GNU LGPL