Geom2d_OffsetCurve (const Handle< Geom2d_Curve > &C, const Standard_Real Offset, const Standard_Boolean isNotCheckC0=Standard_False)
chatgpt解析:Geom2d_OffsetCurve 是 OpenCascade 中的函数,用于构造偏移曲线。下面是对该函数的参数和功能的解析:
C:基准曲线,即要进行偏移的曲线对象,类型为Handle<Geom2d_Curve>。Offset:偏移距离,即偏移曲线与基准曲线之间的距离。isNotCheckC0:是否检查基准曲线的 C0 连续性,默认为Standard_False。如果设置为Standard_True,则不会检查基准曲线是否具有 C0 连续性;如果设置为Standard_False,则会进行 C0 连续性检查。
函数的功能是根据给定的基准曲线 C 和偏移距离 Offset 构造一个偏移曲线。偏移曲线是在基准曲线的每个点处,沿着与基准曲线的切线垂直且方向相反的法向量方向上,偏移距离为 Offset 的曲线。
需要注意的是,偏移曲线是基准曲线的副本,它的构造不会受到基准曲线的修改影响。如果 isNotCheckC0 设置为 false,并且基准曲线 C 不具有至少 C1 连续性,将引发 ConstructionError 异常。此外,函数不会检查任何点上的 ||V^Z|| != 0.0。
该构造函数用于从基准曲线 C 构造一个偏移曲线,其中 Offset 是偏移曲线与基准曲线在任意点上的偏移距离。偏移曲线上的点是通过沿着基准曲线 C 上一点处的法向量测量偏移值来构建的。该法向量是将切向曲线在逆时针方向旋转90度得到的。如果 Offset 为正,则偏移值沿着该法向量指示基准曲线的一侧;如果 Offset 为负,则以相反的方式指示。如果 isNotCheckC0 为 TRUE,则不会检查基准曲线是否具有 C0 连续性。
注意点: offset偏移距离为正负时的区别。

通过对直线的测试证明:法线的正方向为方向向量顺时针旋转90°时的方向,负方向为方向向量逆时针旋转90°。与说明正好相反。还是以实践为准把。
圆弧的正负偏置也可以按上述规律判断。按圆弧从起点到终点的方向,同时在圆弧上一点取切向向量,切向向量的正方向与圆弧正方向一致,将其顺时针旋转后的方向即为偏置正方向。通过下面两张测试图片可知。

通过Reverse ()调换起点和终点后的结果




















