曲率:
平面中的特殊形式为:
曲率半径:
/// <summary>
/// 计算空间曲线的最小曲率半径 赫米特插值曲线
/// 三维曲线弯曲半径计算公式: 一阶导的范数立方 除以 一阶导叉乘二阶导所得结果的范数
/// 曲率半径 R = ||r'(t)||^3 / || r'(t) X r''(t) ||
/// 曲率 K=1/R
/// 范数 || r || 就是长度
/// </summary>
/// <param name="spline">赫米特插值曲线</param>
/// <param name="ratio"> 范围 0-1 代表计算点在全线中的比例位置</param>
/// <returns></returns>
public double ComputeRadius(HermiteSpline spline, double ratio)
{
XYZ tangent1 = spline.ComputeDerivatives(ratio, true).BasisX;//一阶导
XYZ tangent2 = spline.ComputeDerivatives(ratio, true).BasisY;//二阶导
// R = ||r'(t)||^3 / || r'(t) X r''(t) ||
double R =
Math.Pow(tangent1.GetLength(), 3) /
(tangent1.CrossProduct(tangent2)).GetLength();
return R;
}