ICurvePrimitive中函数FractionToPoint的问题

我用一系列的点的数组创建了一个ICurvePrimitivePtr

bvector<DPoint3d> pts;

.....

auto prim = ICurvePrimitive::CreateLineString(pts); 

然后用一段取出fraction:

double fraction = length / totalLength;

prim->FractionToPoint(fraction, point);

我发现ICurvePrimitive要是一条直线的话,取出的点没问题,如果是折线的话,取出的点并不是我在线上设的点。

FractionToPoint的取点机制是什么呢?