InternalClipper内部工具类有哪些应用场景?
摘要:layout: default title: 第6章:InternalClipper 内部工具类 第6章:InternalClipper 内部工具类 6.1 概述 InternalClipper 是 Clipper2 的核心工具类,包含了大
第6章:InternalClipper 内部工具类
6.1 概述
InternalClipper 是 Clipper2 的核心工具类,包含了大量的数学计算和几何判断方法。这些方法主要用于内部算法实现,但部分方法也可供外部使用。
6.2 类定义
public static class InternalClipper
{
internal const long MaxInt64 = 9223372036854775807;
internal const long MaxCoord = MaxInt64 / 4;
internal const double max_coord = MaxCoord;
internal const double min_coord = -MaxCoord;
internal const long Invalid64 = MaxInt64;
internal const double floatingPointTolerance = 1E-12;
internal const double defaultMinimumEdgeLength = 0.1;
// ... 方法定义
}
6.3 精度相关方法
6.3.1 精度检查
[MethodImpl(MethodImplOptions.AggressiveInlining)]
internal static void CheckPrecision(int precision)
{
if (precision < -8 || precision > 8)
throw new Exception("Error: Precision is out of range.");
}
精度参数范围为 -8 到 8,表示小数点位置。
6.3.2 近似零判断
[MethodImpl(MethodImplOptions.AggressiveInlining)]
internal static bool IsAlmostZero(double value)
{
return (Math.Abs(value) <= floatingPointTolerance);
}
判断浮点数是否接近零(容差 10⁻¹²)。
6.4 向量运算
6.4.1 叉积(Cross Product)
叉积用于判断点的位置关系和多边形方向。
