Geom2dAPI_InterCurveCurve
是OpenCascade库中的一个类,用于计算两个2D曲线之间的交点和其他相关信息。它提供了一个接口,使用户可以方便地执行曲线之间的交点计算。
以下是Geom2dAPI_InterCurveCurve
类的主要成员函数及其功能:
Geom2dAPI_InterCurveCurve()
: 默认构造函数。Geom2dAPI_InterCurveCurve(const Handle(Geom2d_Curve)& Curve1, const Handle(Geom2d_Curve)& Curve2)
: 构造函数,设置要计算交点的两个曲线。Init(const Handle(Geom2d_Curve)& Curve1, const Handle(Geom2d_Curve)& Curve2)
: 初始化交点计算,设置要计算交点的两个曲线。NbPoints() const
: 返回找到的交点数量。Point(const Standard_Integer Index) const
: 返回指定索引处的交点。Segment(const Standard_Integer Index) const
: 返回指定索引处的交点段。- NbSegments ()
const
: 返回指定索引处的交点段。 - Intersector() const Geom2dInt_GInter& Geom2dAPI_InterCurveCurve::Intersector从交点中返回算法对象.可通过该函数获取交点在两个曲线上的参数值U,可方便后续曲线从交点处截取
Geom2dInt_GInter
是OpenCascade中的一个类,用于计算两条2D曲线之间的交点,与上面这个功能类似,但是其能返回一个IntRes2d_IntersectionPoint类对象,该对象可读取到该交点处在两个曲线上的参数值U。 Geom2dAPI_InterCurveCurve可通过
Intersector()函数获取到Geom2dInt_GInter的类型。
Geom2dAPI_InterCurveCurve InterCC(vOffsetCur.at(index), vOffsetCur.at(iNextIndex), 0.001);
const Geom2dInt_GInter& intersectionData = InterCC.Intersector(); //正确方式
Geom2dInt_GInter intersectionData = InterCC.Intersector();//错误方式
分析:
Geom2dAPI_InterCurveCurve对象InterCC,调用
Intersector函数后,返回的是一个引用,如果把其赋值给Geom2dInt_GInter对象,则相当于重新新建一个
Geom2dAPI_InterCurveCurve 对象,而如果将其赋值给引用对象,则 InterCC对象地址赋值给Geom2dInt_GInter引用对象,仍是同一个对象,通过IsDone()就能正常显示。
第二种方式:直接通过Geom2dInt_GInter对象获取
// 创建适配器对象
Handle(Geom2dAdaptor_Curve) hCurveFirst = new Geom2dAdaptor_Curve(vOffsetCur.at(index));
Handle(Geom2dAdaptor_Curve) hCurveLast = new Geom2dAdaptor_Curve(vOffsetCur.at(iNextIndex));
Geom2dInt_GInter intersectionData(*hCurveFirst, *hCurveLast, 0.001, 0.001);
IntRes2d_IntersectionPoint
是OpenCascade库中的一个类,用于表示2D曲线的交点信息。它包含了交点的位置、参数值以及相关属性。
以下是IntRes2d_IntersectionPoint
类的一些主要成员函数和属性:
Standard_Real ParamOnFirst()
:返回交点在第一条曲线上的参数值。Standard_Real ParamOnSecond()
:返回交点在第二条曲线上的参数值。const gp_Pnt2d& Value()