A path crossing a surface may be modeled in various ways. Simple cross-sectional profiles or transects, as we have previously seen, are typically modeled by sampling the line at a given frequency, or constructing the profile directly from the height of cells representing the surface across which the line passes. In general paths on surfaces are assumed to lie exactly on the surface and are modeled as polylines, smooth curves or sets of adjacent cells in the plane. Strictly speaking a curve crossing a surface is a form of space (3D) curve rather than a plane curve, and could be modeled as such. In practice the planar form is modeled and smoothed where necessary, with horizontal and vertical profiles treated separately. A path, P, may be modeled using incremental distance, t, along its length as a parameter: P={x(t),y(t)} or for a space curve P={x(t),y(t),z(t)}. As t increases from 0 (the start point) to T (the end point, defined by the total length of the path) the set of points {x(t),y(t),z(t)} map out the precise route of the path.

Incremental path slope, direction and curvature in plan or profile views may be computed using simple finite difference expressions based on the point set, or by calculating the relevant differentials using smooth curve approximations to the point set. For example, using spline curve modeling, as described in de Smith (2006), paths may be constructed across surfaces that meet specific engineering design requirements in terms of the minimum radius of curvature acceptable in vertical and plan profiles. Such paths will not necessarily remain on the surface, but will pass above or below the original surface at various points. Construction of these paths then requires a degree of cut-and-fill and/or bridging and tunneling.

Path curvature, κ, at point t, is defined by the expression shown below — see for example, do Carmo (1976, Ch.1) or the Mathworld website entry for curvature for more details:

where γ(t) is the parameterized space curve, γ′(t) and γ′′(t) are the first and second differentials of the curve, × is the 3D vector cross product and ||x|| is the Euclidean Norm of x. This expression may be written in the form we have provided earlier as:

As noted earlier, the radius of curvature is simply r=1/κ. Sample computation of κ for use within MATLab is described in de Boor (2003, p. 2‑31).

Vertical profile path smoothing using spline functions is illustrated in Figure 6‑17. This shows the profile of an initial path (dotted line) across a surface that was designed to meet maximum slope constraints but did not meet horizontal curvature requirements. The vertical profile of the horizontally smoothed version of this path is shown as a solid line, which shows greater variation in profile than the original path. The new path has then been smoothed again (bold line) to meet vertical curvature and slope constraints.

Figure 6‑17 Path smoothing — vertical profile