Forum archiveIssue archiveOther usage issues

Archived discussion

Bug in curve interpolation?

Other usage issuesWed, 06/30/2010 - 22:301 reply

Browse this forum
QuestionAuthor

Dear forum members,
I tried curve interpolation with and without setting the end derivatives (vector is generated with the first/last point and its neighbor point). The blue curve without derivatives looks fine, in case of derivative prescription a self-intersection happens at the end due to the "high velocity" of the curve. Any ideas what the reasons are and how to handle this?

I used the following code:
Handle_Geom_BSplineCurve
SplineFunc::curveInterpolation(TColgp_HSequenceOfPnt * arrayIn)
{
int i;

TColgp_HArray1OfPnt *array = new TColgp_HArray1OfPnt(1, arrayIn->Length()); // sizing harray

for (i=1; iLength(); i++)
array->SetValue(i , arrayIn->Value(i));

GeomAPI_Interpolate anInterpolation(array, /* Periodicity */Standard_False, /* Precision */ Precision::Approximation());

gp_Vec vecStart(array->Value(1), array->Value(2));
gp_Vec vecEnd(array->Value(arrayIn->Length()-1), array->Value(arrayIn->Length()));

// Start and End derivatives
anInterpolation.Load(vecStart, vecEnd, 1);
anInterpolation.Perform();
return anInterpolation.Curve();
}

Discussion

1 archived reply

Posts are displayed in their archived order.

01Author

Dear forum members,

is there any possibility to set tangency as well as curvature at the begin and end of an interpolating curve?

I am thinking about two applications:
- Better results with the tangency constraint by a better adjustment of the vector magnitude (the attached figure explains the problem)
- Connecting different curves with C2-continuity - is there any method available in OCC which already provides this functionality?

Thanks for any help!