如何在 OpenCASCADE 中获取曲线长度

OCCUtils 提供了在 OpenCASCADE 中获取曲线长度的便捷函数:

occutils_curve_length.cpp
#include <occutils/Curve.hxx>

using namespace OCCUtils;

GeomAdaptor_Curve curve = /* ... */;

double length = Curve::Length(curve);

你可以使用 GeomAdaptor_CurveGeom_TrimmedCurve 调用它。虽然你也可以使用 Handle(Geom_Curve) 调用它,但这通常不是你想要做的,因为 Geom_Curve 通常描述无限曲线(如无限长的线)并且不知道实际使用曲线的哪一段(GeomAdaptor_CurveGeom_TrimmedCurve 都存储了所需的 Umin/Umax 信息)。

如果你需要手动操作(不使用 OCCUtils),使用此代码片段:

manual_curve_length.cpp
#include <GCPnts_AbscissaPoint.hxx>

GeomAdaptor_Curve curve = /* ... */;

GCPnts_AbscissaPoint::Length(curve);

对于 Geom_TrimmedCurve,你需要先将其转换为 GeomAdaptor_Curve。请参见如何在 OpenCASCADE 中将 Geom_TrimmedCurve 转换为 GeomAdaptor_Curve了解如何操作的详情。


Check out similar posts by category: C/C++, OpenCASCADE