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) 叉积用于判断点的位置关系和多边形方向。
阅读全文