Expand description
Derivatives, certified bounds and corners of elevated and banked
curves in plan distance (#252), re-exported on the same footing as
curve and surface.
Derivatives, certified bounds and seams of elevated and banked curves in
plan distance (#252).
An Elevated3 is c(d) = (p(d), z(d)): a plan p read by its own
arc length d and a height z written against that same d. Its
parameter is plan distance (ADR 0082), so its derivatives are taken in
d: c' = (p', z') with |p'| = 1 (not a unit vector in 3D: its length
is sqrt(1 + g^2), g the grade), c'' = (k n, z'') with k the plan
curvature and n the plan’s left normal, c''' = (k' n - k^2 p', z''').
A Banked3’s point is its centreline raised by the pivot e(d), so it
adds e^(j) to every z^(j).
§The certified 3D chord bound
Over a span [a, b] of width h, let l be the linear interpolant of
the ends, l(d) = c(a) + (d - a) / h (c(b) - c(a)). It lies on the 3D
chord. Componentwise, c - l = -int G(d, s) c''(s) ds with the
non-negative Green’s function of -d^2/dd^2 on [a, b], whose integral
is at most h^2 / 8 (crate::bound’s chord argument). Applied to the
horizontal and the vertical part separately, at the SAME d:
|p(d) - l_p(d)| <= P = h^2 / 8 sup |p''| = h^2 / 8 sup |k|, the plan’s own chord bound read at equal plan distance;|z(d) - l_z(d)| <= Z, the profile’s chord bound (elevation_chord_bound), which is the same Taylor argument onz;
and the two parts are orthogonal (p horizontal, z vertical), so
|c(d) - l(d)| <= sqrt(P^2 + Z^2).Every point of the curve is within that of the chord. The bound only
needs c to be C^1 with a bounded second derivative on the span: a
curvature seam of the plan (a clothoid meeting an arc) does not stop it,
a join of a chain or a seam of the profile (where the grade may jump)
does, and those are cut first (elevated_breaks). A flattener that
accepts a span once sqrt(P^2 + Z^2) <= tol has split the budget
between plan and profile in quadrature: P <= tol cos(a),
Z <= tol sin(a) for the angle a = atan(Z / P) the span itself sets.
A banked curve’s vertical part is z + e, bounded by Z + h^2 / 8 sup |e''|.
The plan’s chord bound is NOT the plan’s own chord_bound2: that bounds
the distance from the plan arc to the plan chord, which for a circle is
the exact sagitta at the arc’s own nearest chord point, not at equal
plan distance, and the vertical part could then be read at a different
d. The Taylor bound at equal d is what composes.
§Derivative bounds
For a sweep’s certificate (the tube wall of axiolid-mesh-compile’s
deviation report) the first three derivatives are bounded the same way:
|c^(j)| <= sqrt(P_j^2 + Z_j^2), with P_1 the plan frame’s stretch,
P_2 = sup |k|, P_3 = sup |k'| + sup k^2 (in arc length
p''' = k' n - k^2 t; a chain’s parametric piece is bounded through its
own derivative suprema), and Z_j from
crate::elevation’s per-law closed forms. They need C^2 within the
span, so curvature seams of the plan are named as breaks for k >= 2.
Functions§
- banked_
breaks elevated_breaksof a banked curve’s point path, plus the seams of its pivot law (its rate may jump there). The cant law moves only the section frame, not the point, so its seams are not named – except where a held-rail pivot piece derives the point from the cant (#279): the cant’s seams there are the pivot’s.- banked_
chord_ bound elevated_chord_boundof a banked curve’s point path: the vertical part isz + e, bounded byZ + h^2 / 8 sup |e''|.- banked_
derivative_ bounds elevated_derivative_boundsof a banked curve’s point path, the pivot’s derivatives added to the profile’s.- elevated_
breaks - Where an elevated curve may fail to be
C^k(k >= 1), ascending: a chain plan’s joins and every seam of the elevation law (the grade may jump there), and fork >= 2the curvature seams of an intrinsic plan or of a chain’s intrinsic pieces. - elevated_
chord_ bound - Certified 3D chord bound of an elevated curve over plan distances
[a, b]:sqrt(P^2 + Z^2),P = h^2 / 8 sup |k|the plan’s andZthe profile’s chord bound at equal plan distance (see the module documentation for the derivation). - elevated_
derivative - Derivative of an elevated curve in plan distance:
(p', z'). Not unit: its length issqrt(1 + g^2)on an orthonormal plan frame. - elevated_
derivative_ bounds - Certified suprema of
|c'|,|c''|,|c'''|of an elevated curve in plan distance over[a, b]:sqrt(P_j^2 + Z_j^2)(module documentation).Nonewhere the curve may not beC^2strictly inside the span, or where either half is not bounded. - elevated_
second_ derivative - Second derivative of an elevated curve in plan distance:
(k n, z''), the plan’s curvature vector and the profile’sz''. - elevated_
span - Plan length an elevated curve’s parameter runs over: unbounded for a
line, one full turn for a circle, the stored length of an intrinsic
curve or a chain;
Nonefor a plan that cannot carry an elevation law or has no positive finite length. - grade_
corners3 - Where an elevated or banked curve turns a corner: the seams (of its
profile, and of a banked curve’s pivot) across which the grade of its
point path jumps by more than
angleradians, ascending.