These functions Evaluate() and EvCurvature() are getting different normal vector

The edge index 10 in this brep as the attachment(cube3.3dm) is a simple curve.
When I use ON_Curve :: Evaluate(57.257, 2, 1, V);
V[6-8] is 0.077144580093527537,0.059404865221024394,-0.0052828507057833818
When I use ON_Curve :: EvCurvature(57.257,point, first_derivative, second_derivative, 1);
second_derivative is -0.00017437434250571859 , 0.059029480328167336 , -0.002808516830701
(this one is correct)

My question is why these functions calculate normal vector(curvature) in the same domain t, but the value are different?


cube3.3dm (63.1 KB)

Hi @Marshall,

For equivalency, take the first and second derivatives, calculated from ON_Curve::Evaluate and pass them to ON_EvCurvature. Use the tangent and kappa returned by this function.

– Dale