Interface ParametricCurve

All Superinterfaces:
ContinuousFunction<Real, Vector<Real>>, DifferentiableFunction<Real, Vector<Real>>, Function<Real, Vector<Real>>, Function<Real, Vector<Real>>, Relation<Real, Vector<Real>>
All Known Implementing Classes:
BezierCurve, Circle, Ellipse, Helix

public interface ParametricCurve extends DifferentiableFunction<Real, Vector<Real>>
Represents a parametric curve in N-dimensional space.

A parametric curve is defined by: C(t) = (x₁(t), x₂(t), ..., xₙ(t)) where t is the parameter, typically in some interval [a, b].

Examples: - Line: C(t) = P₀ + t*d - Circle: C(t) = (r*cos(t), r*sin(t)) - Helix: C(t) = (r*cos(t), r*sin(t), h*t) - Bézier curve: C(t) = Σ Bᵢ(t)*Pᵢ

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

    • differentiate

      default Function<Real, Vector<Real>> differentiate()
      Description copied from interface: DifferentiableFunction
      Returns the derivative of this function.
      Specified by:
      differentiate in interface DifferentiableFunction<Real, Vector<Real>>
      Returns:
      f'
    • evaluate

      default Vector<Real> evaluate(Real t)
      Description copied from interface: Function
      Evaluates this function at the given point.
      Specified by:
      evaluate in interface Function<Real, Vector<Real>>
      Parameters:
      t - the input point
      Returns:
      the value of the function at x
    • getOutputDimension

      default int getOutputDimension()
    • at

      PointND at(Real t)
      Evaluates the curve at parameter t.
      Parameters:
      t - the parameter value
      Returns:
      the point on the curve
    • dimension

      int dimension()
      Returns the dimension of the ambient space.
      Returns:
      the dimension
    • tangent

      default Vector<Real> tangent(Real t, Real h)
      Returns the tangent vector at parameter t.

      The tangent vector is the derivative: C'(t) = dC/dt

      Parameters:
      t - the parameter value
      h - the step size for numerical differentiation
      Returns:
      the tangent vector
    • unitTangent

      default Vector<Real> unitTangent(Real t, Real h)
      Returns the unit tangent vector at parameter t.
      Parameters:
      t - the parameter value
      h - the step size
      Returns:
      the normalized tangent vector
    • arcLength

      default Real arcLength(Real t0, Real t1, int numSteps)
      Computes the arc length from t0 to t1.

      Arc length: L = ∫[t0,t1] ||C'(t)|| dt

      Parameters:
      t0 - the start parameter
      t1 - the end parameter
      numSteps - the number of integration steps
      Returns:
      the arc length
    • curvature

      default Real curvature(Real t, Real h)
      Returns the curvature at parameter t.

      Curvature: κ = ||C'(t) × C''(t)|| / ||C'(t)||³

      For 2D curves: κ = |x'y'' - y'x''| / (x'² + y'²)^(3/2)

      Parameters:
      t - the parameter value
      h - the step size for numerical differentiation
      Returns:
      the curvature
    • normal

      default Vector<Real> normal(Real t, Real h)
      Returns the normal vector at parameter t (for 2D/3D curves).

      The normal vector is perpendicular to the tangent.

      Parameters:
      t - the parameter value
      h - the step size
      Returns:
      the unit normal vector