API Reference
Functions
ParametricCurves.Acceleration — Function
Acceleration(curve::Vector, t::Sym, t_val=nothing)Compute the Tangential and Normal Components of Acceleration
Arguments
curve::Vector: 3D Parametric curve componentst::Sym: Parameter symbolt_val: Optional numeric value to evaluate at
Returns
Tuple of (Tangential component, Normal component) of acceleration vector.
Examples
julia> @syms t
julia> curve = [t^2, t, 2*t]
julia> aT, aN = Acceleration(curve, t)
julia> aT
2*t / sqrt(5 + 4*t^2)
julia> aN
2*sqrt(5) / sqrt(5 + 4*t^2)
julia> # Evaluate at t = 1
julia> Acceleration(curve, t, 1)
(4/3, 2*sqrt(5)/3)ParametricCurves.Angle — Method
Angle(a::AbstractVector, b::AbstractVector)Compute the angle between two vectors a and b in radians.
Supports both numeric and symbolic vectors.
Examples
julia> Angle([1, 0], [0, 1])
1.5707963267948966 # π/2ParametricCurves.ArcLength — Method
ArcLength(curve::Vector, t::Sym, a, b; symbolic=true)Compute the arc length of a parametrized curve from parameter value a to b.
Arguments
curve::Vector: Parametric curve components [x(t), y(t), z(t)]t::Sym: Parameter symbola: Starting parameter valueb: Ending parameter valuesymbolic::Bool: If true, attempts symbolic integration; otherwise uses numerical integration
Returns
Arc length value (symbolic or numeric)
ParametricCurves.ArcLengthParametrization — Method
ArcLengthParametrization(curve::Vector, s::Sym; symbolic=true)Compute the arc length parametrization of a curve.
Arguments
curve::Vector: Parametric curve componentss::Sym: Parameter symbol for the curvesymbolic::Bool: If true, attempts symbolic integration
Returns
Arc length function s(t)
ParametricCurves.Binormal — Function
Binormal(curve::Vector, t::Sym, t_val=nothing)Compute the binormal vector B(t) = T(t) × N(t) for a 3D parametric curve.
Arguments
curve::Vector: 3D parametric curve componentst::Sym: Parameter symbolt_val: Optional numeric value to evaluate at
Returns
Binormal vector
ParametricCurves.Cross — Method
Cross(a::AbstractVector, b::AbstractVector)Compute the cross product of two 3D vectors a and b.
Supports both numeric and symbolic vectors.
Examples
julia> Cross([1, 0, 0], [0, 1, 0])
3-element Vector{Int64}:
0
0
1ParametricCurves.Curvature — Function
Curvature(curve::Vector, t::Sym, t_val=nothing)Compute the curvature κ = |r'(t) × r''(t)|/|r'(t)|³ of a 3D parametric curve.
Arguments
curve::Vector: 3D parametric curve componentst::Sym: Parameter symbolt_val: Optional numeric value to evaluate at
Returns
Curvature value
ParametricCurves.Dot — Method
Dot(a::AbstractVector, b::AbstractVector)Compute the dot product of two vectors a and b.
Supports both numeric and symbolic vectors.
Examples
julia> Dot([1, 2, 3], [4, 5, 6])
32ParametricCurves.FrenetSerret — Function
FrenetSerret(curve::Vector, t::Sym, t_val=nothing)Compute the Frenet-Serret frame (Tangent, Normal, Binormal).
Arguments
curve::Vector: 3D Parametric curve componentst::Sym: Parameter symbolt_val: Optional numeric value to evaluate at
Returns
Tuple of (Tangent, Normal, Binormal) vectors
ParametricCurves.Gradient — Method
Gradient(f, vars::AbstractVector)Compute the gradient vector of a scalar function f with respect to variables vars.
The gradient is the vector of partial derivatives: ∇f = [∂f/∂x, ∂f/∂y, ∂f/∂z, ...]
Arguments
f: Scalar symbolic or numeric functionvars::AbstractVector: Variables to differentiate with respect to
Returns
Gradient vector as a symbolic expression
Examples
julia> @syms x y z
julia> f = x^2 + 2*y*z + z^2
julia> Gradient(f, [x, y, z])
3-element Vector:
2*x
2*z
2*y + 2*zParametricCurves.Jacobian — Method
Jacobian(funcs::AbstractVector, vars::AbstractVector)Compute the Jacobian matrix of a vector-valued function with respect to variables vars.
The Jacobian is the matrix of all first-order partial derivatives. For a function f: ℝⁿ → ℝᵐ represented as a vector [f₁, f₂, ..., fₘ], the Jacobian is an m×n matrix where entry J[i,j] = ∂fᵢ/∂xⱼ.
Arguments
funcs::AbstractVector: Vector of functions [f₁, f₂, ..., fₘ]vars::AbstractVector: Variables to differentiate with respect to [x₁, x₂, ..., xₙ]
Returns
Jacobian matrix as a vector of vectors (m×n matrix)
Examples
julia> @syms x y z
julia> funcs = [x^2 + y, x*y*z, z^2]
julia> Jacobian(funcs, [x, y, z])
3×3 Matrix:
2*x 1 0
y*z x*z x*y
0 0 2*z
julia> # Jacobian for a parametric curve
julia> @syms t
julia> curve = [cos(t), sin(t), t^2]
julia> Jacobian(curve, [t])
3×1 Matrix:
-sin(t)
cos(t)
2*tParametricCurves.JacobianDet — Method
JacobianDet(funcs::AbstractVector, vars::AbstractVector)Compute the determinant of the Jacobian matrix and return the simplified result.
This function computes the Jacobian matrix of the vector-valued function funcs with respect to variables vars, then calculates and simplifies its determinant.
Arguments
funcs::AbstractVector: Vector of functions [f₁, f₂, ..., fₙ]vars::AbstractVector: Variables to differentiate with respect to [x₁, x₂, ..., xₙ]
Note
The Jacobian matrix must be square for the determinant to be defined. This requires length(funcs) == length(vars).
Returns
Simplified determinant of the Jacobian matrix
Examples
julia> @syms x y
julia> funcs = [x^2 + y, x*y]
julia> JacobianDet(funcs, [x, y])
2*x^2 - y
julia> @syms u v
julia> transformation = [u*cos(v), u*sin(v)]
julia> JacobianDet(transformation, [u, v])
uParametricCurves.Norm — Method
Norm(v::AbstractVector)Compute the Euclidean norm (magnitude) of vector v.
Supports both numeric and symbolic vectors.
Examples
julia> Norm([3.0, 4.0])
5.0
julia> @syms x y
julia> Norm([x, y])
sqrt(x^2 + y^2)ParametricCurves.Normal — Function
Normal(curve::Vector, t::Sym, t_val=nothing)Compute the principal normal vector N(t) = T'(t)/|T'(t)| for a 3D parametric curve.
Arguments
curve::Vector: 3D parametric curve componentst::Sym: Parameter symbolt_val: Optional numeric value to evaluate at
Returns
Principal normal vector
ParametricCurves.Normalize — Method
Normalize(v::AbstractVector)Return the unit vector in the direction of v.
Supports both numeric and symbolic vectors.
Examples
julia> Normalize([3.0, 4.0])
2-element Vector{Float64}:
0.6
0.8ParametricCurves.ParametricLine — Method
ParametricLine(x::AbstractVector, v::AbstractVector)Generate the parametric equation for a line through point x parallel to direction vector v in 3D.
Returns a parametric expression in terms of parameter t.
Examples
julia> ParametricLine([1, 2, 3], [1, 0, 0])
3-element Vector:
t + 1
2
3ParametricCurves.PlaneEquation — Method
PlaneEquation(p::AbstractVector, n::AbstractVector)Generate the equation for a plane given a point p on the plane and normal vector n.
Returns the plane equation in the form: n₁x + n₂y + n₃z - d = 0
Examples
julia> PlaneEquation([0, 0, 1], [0, 0, 1])
z - 1ParametricCurves.Projection — Method
Projection(a::AbstractVector, b::AbstractVector)Project vector a onto vector b.
Returns the vector projection of a onto b.
Examples
julia> Projection([3, 4], [1, 0])
2-element Vector{Float64}:
3.0
0.0ParametricCurves.Tangent — Function
Tangent(curve::Vector, t::Sym, t_val=nothing)Compute the unit tangent vector T(t) = r'(t)/|r'(t)| for a parametric curve.
Arguments
curve::Vector: Parametric curve componentst::Sym: Parameter symbolt_val: Optional numeric value to evaluate at
Returns
Unit tangent vector
ParametricCurves.Torsion — Function
Torsion(curve::Vector, t::Sym, t_val=nothing)Compute the torsion τ = (r'(t) × r''(t)) · r'''(t) / |r'(t) × r''(t)|² of a 3D parametric curve.
Arguments
curve::Vector: 3D parametric curve componentst::Sym: Parameter symbolt_val: Optional numeric value to evaluate at
Returns
Torsion value
Index
ParametricCurves.AccelerationParametricCurves.AngleParametricCurves.ArcLengthParametricCurves.ArcLengthParametrizationParametricCurves.BinormalParametricCurves.CrossParametricCurves.CurvatureParametricCurves.DotParametricCurves.FrenetSerretParametricCurves.GradientParametricCurves.JacobianParametricCurves.JacobianDetParametricCurves.NormParametricCurves.NormalParametricCurves.NormalizeParametricCurves.ParametricLineParametricCurves.PlaneEquationParametricCurves.ProjectionParametricCurves.TangentParametricCurves.Torsion