For a curve, I want to get the point at a distance from the curve's start point. A piece of code is below:

ICurve pCurve = (ICurve)feature.ShapeCopy; // feature is a IFeature

IPoint startPoint = pCurve.FromPoint;

IPoint toPoint = pCurve.ToPoint;

double distanceOnCurve = 0.4 * pCurve.Length;

double offset = double.NaN;

bool isRightSide = false;

bool asRatio = false;

pCurve.QueryPointAndDistance(esriSegmentExtension.esriNoExtension, startPoint, asRatio, toPoint,

ref distanceOnCurve, ref offset, ref isRightSide);

But I don't know how the result be returned as a Point. Appreciate in advance if you can provide a hint.

ICurve pCurve = (ICurve)feature.ShapeCopy; // feature is a IFeature

IPoint startPoint = pCurve.FromPoint;

IPoint toPoint = pCurve.ToPoint;

double distanceOnCurve = 0.4 * pCurve.Length;

double offset = double.NaN;

bool isRightSide = false;

bool asRatio = false;

pCurve.QueryPointAndDistance(esriSegmentExtension.esriNoExtension, startPoint, asRatio, toPoint,

ref distanceOnCurve, ref offset, ref isRightSide);

But I don't know how the result be returned as a Point. Appreciate in advance if you can provide a hint.

1) Define a curve (or a line) and get its FromPoint (and ToPoint).

2) Break the curve (or line) to multiple points, as returned as <List>IPoint.

3) Loop the List, and calculate the distance between FromPoint to the point in the List.

4) If the distance calculated is below the allowed value (e.g. 0.1 or 0.2, or even smaller), return the result as this point.

Thanks for your review my thread.