示例#1
0
 public static Point3D Evaluate(
     this IParametricSurface surface,
     Parametrisation parametrisation
     )
 {
     return(surface.Evaluate(
                parametrisation.U,
                parametrisation.V
                ));
 }
示例#2
0
 public static double DistanceNormMax(
     Parametrisation left,
     Parametrisation right
     )
 {
     // todo: check boundaries
     return(Math.Max(
                Math.Abs(left.UnboundedU - right.UnboundedU),
                Math.Abs(left.UnboundedV - right.UnboundedV)
                ));
 }
示例#3
0
 public static Vector3D Derivative(
     this IParametricSurface surface,
     Parametrisation parametrisation,
     DerivativeParameter parameter
     )
 {
     return(surface.Derivative(
                parametrisation.U,
                parametrisation.V,
                parameter
                ));
 }
示例#4
0
        public static Vector3D Normal(
            this IParametricSurface surface,
            Parametrisation parametrisation)
        {
            var du = surface.Derivative(
                parametrisation,
                DerivativeParameter.U
                );

            var dv = surface.Derivative(
                parametrisation,
                DerivativeParameter.V
                );

            return(Vector3D.CrossProduct(du, dv));
        }