如何在 OpenCASCADE 中获取曲线长度
OCCUtils 提供了在 OpenCASCADE 中获取曲线长度的便捷函数:
occutils_curve_length.cpp
#include <occutils/Curve.hxx>
using namespace OCCUtils;
GeomAdaptor_Curve curve = /* ... */;
double length = Curve::Length(curve);你可以使用 GeomAdaptor_Curve 或 Geom_TrimmedCurve 调用它。虽然你也可以使用 Handle(Geom_Curve) 调用它,但这通常不是你想要做的,因为 Geom_Curve 通常描述无限曲线(如无限长的线)并且不知道实际使用曲线的哪一段(GeomAdaptor_Curve 和 Geom_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
If this post helped you, please consider buying me a coffee or donating via PayPal to support research & publishing of new posts on TechOverflow