Class Paraboloid

java.lang.Object
org.episteme.core.mathematics.geometry.surfaces.Paraboloid
All Implemented Interfaces:
Function<Vector<Real>, Vector<Real>>, ContinuousFunction<Vector<Real>, Vector<Real>>, DifferentiableFunction<Vector<Real>, Vector<Real>>, Function<Vector<Real>, Vector<Real>>, Relation<Vector<Real>, Vector<Real>>, ParametricSurface

public class Paraboloid extends Object implements ParametricSurface
Represents a paraboloidal surface.

A paraboloid is a quadric surface with equation z = (x²/a²) + (y²/b²). Parametric form: S(u, v) = (u, v, u²/a² + v²/b²)

Special cases: - a = b: Circular paraboloid (paraboloid of revolution) - a ≠ b: Elliptic paraboloid

Since:
1.0
Author:
Silvere Martin-Michiellot, Gemini AI (Google DeepMind)
  • Constructor Details

    • Paraboloid

      public Paraboloid(Real scaleA, Real scaleB)
      Creates a paraboloid with the given scale factors. Vertex at origin.
      Parameters:
      scaleA - the scale factor along x
      scaleB - the scale factor along y
    • Paraboloid

      public Paraboloid(PointND vertex, Real scaleA, Real scaleB)
      Creates a paraboloid with the given vertex and scale factors.
      Parameters:
      vertex - the vertex point
      scaleA - the scale factor along x
      scaleB - the scale factor along y
  • Method Details

    • at

      public PointND at(Real u, Real v)
      Description copied from interface: ParametricSurface
      Evaluates the surface at parameters (u, v).
      Specified by:
      at in interface ParametricSurface
      Parameters:
      u - the first parameter
      v - the second parameter
      Returns:
      the point on the surface
    • partialU

      public Vector<Real> partialU(Real u, Real v, Real h)
      Description copied from interface: ParametricSurface
      Returns the partial derivative ∂S/∂u.

      This is the tangent vector in the u-direction.

      Specified by:
      partialU in interface ParametricSurface
      Parameters:
      u - the first parameter
      v - the second parameter
      h - the step size for numerical differentiation
      Returns:
      the partial derivative vector
    • partialV

      public Vector<Real> partialV(Real u, Real v, Real h)
      Description copied from interface: ParametricSurface
      Returns the partial derivative ∂S/∂v.

      This is the tangent vector in the v-direction.

      Specified by:
      partialV in interface ParametricSurface
      Parameters:
      u - the first parameter
      v - the second parameter
      h - the step size for numerical differentiation
      Returns:
      the partial derivative vector
    • gaussianCurvature

      public Real gaussianCurvature(Real u, Real v, Real h)
      Description copied from interface: ParametricSurface
      Returns the Gaussian curvature at (u, v).

      K = (LN - M²) / (EG - F²) where L, M, N are second fundamental form coefficients and E, F, G are first fundamental form coefficients.

      Specified by:
      gaussianCurvature in interface ParametricSurface
      Parameters:
      u - the first parameter
      v - the second parameter
      h - the step size
      Returns:
      the Gaussian curvature
    • getScaleA

      public Real getScaleA()
      Returns the scale factor along x.
      Returns:
      the scale factor a
    • getScaleB

      public Real getScaleB()
      Returns the scale factor along y.
      Returns:
      the scale factor b
    • getVertex

      public PointND getVertex()
      Returns the vertex point.
      Returns:
      the vertex
    • focalLength

      public Real focalLength()
      Returns the focal length for a circular paraboloid (a = b). f = a²/4
      Returns:
      the focal length
      Throws:
      IllegalStateException - if not a circular paraboloid