signed curvature of a boundary segment
Description
The Menger curvature through the midpoints of a segment and its two neighbours within the same chain, smoothed along the chain afterwards.
The sign is meaningful: segments are stored in walk order with the grain gB.grainId(:,1) on the left, so a positive curvature means the boundary bulges into gB.grainId(:,2) and a negative one that it bulges into gB.grainId(:,1).
Which of the two grains ends up in the first column is not a property of the segment, it is the direction it is walked in. To read the curvature as convex or concave with respect to one specific grain, put that grain into the first column everywhere first
gB = grains(k).boundary;
gB = flip(gB, gB.grainId(:,2) == grains(k).id);Segments at the end of an open chain have no neighbour on one side and therefore no curvature - those are returned as NaN. A chain consisting of a single segment is NaN throughout. Closed chains wrap around and are defined everywhere.
Syntax
kappa = curvature(gB)
kappa = curvature(gB,2)Input
| gB | grainBoundary |
| n | number of smoothing iterations along the chain (default 50) |
Output
| kappa | 1/fitting radius in EBSD units |
See also
grainBoundary.flip grainBoundary.grainBoundary grainBoundary.grainBoundary