今天要实现的功能是在曲线的终点处沿切线方向延长该曲线。为了解决这个问题,需要求解该曲线在终点处的坐标值以及切矢量。问题转化为:已知曲线TopoDS_Edge aE,求其在终点处的坐标值及切线方向向量。
首先,将TopoDS_Edge对象转化为Geom_Curve对象,然后使用Geom_Curve对象的D0和D1方法分别求取坐标值和切矢量。
具体如下:
Standard_Real first = 0.0;
Standard_Real end = 0.0;
Handle(Geom_Curve) cur = BRep_Tool::Curve(aE, first, end);
Standard_Real lastParam = cur->LastParameter();
gp_Pnt pf;
cur->D0(lastParam, pf);
gp_Vec dv;
cur->D1(lastParam, pf,dv);
gp_Lin line_t(pf, dv);
TopoDS_Edge aEt=BRepBuilderAPI_MakeEdge(line_t,0,0.506);