Introduces new vertices into this polyline at specified distances from the beginning of the polyline.
[Visual Basic .NET] Public Function SplitAtDistances ( _ ByVal polyCurve As IPolycurve2, _ ByRef distances As Double[]&, _ ByVal asRatios As Boolean, _ ByVal createParts As Boolean _ ) As IEnumSplitPoint
[C#] public IEnumSplitPoint SplitAtDistances ( IPolycurve2 polyCurve, ref Double[]& distances, ref bool asRatios, ref bool createParts );
[C++]
HRESULT SplitAtDistances(
IPolycurve2* polyCurve,
distances* distances,
VARIANT_BOOL asRatios,
VARIANT_BOOL createParts,
IEnumSplitPoint** splitInfo
);
[C++]Parameters
polyCurve [in]polyCurve is a parameter of type IPolycurve2
distances [in] distances is a parameter of type asRatios [in] asRatios is a parameter of type VARIANT_BOOL createParts [in] createParts is a parameter of type VARIANT_BOOL splitInfo [out, retval]splitInfo is a parameter of type IEnumSplitPoint
Product Availability
public void SplitAtDistances()
{
//Construct Polycurve
IPoint fromPoint = new PointClass();
fromPoint.PutCoords(0, 0);
IPoint toPoint = new PointClass();
toPoint.PutCoords(100, 0);
IPolycurve2 polyCurve = new PolylineClass();
polyCurve.FromPoint = fromPoint;
polyCurve.ToPoint = toPoint;
//split in 10 parts using absolute length, therefore asRatio = false
bool asRatio = false;
double[] distances = new double[10];
for (int i = 0; i < 10; i++)
{
distances[i] = (polyCurve.Length / 100) * (i + 1) * 10;
}
IGeometryBridge2 geometryBridge = new GeometryEnvironmentClass();
IEnumSplitPoint splitPoints = geometryBridge.SplitAtDistances(polyCurve, ref distances, asRatio, true);
//print splitPoints
splitPoints.Reset();
IPoint currentPoint;
int partIndex;
int vertexIndex;
splitPoints.Next(out currentPoint, out partIndex, out vertexIndex);
while (currentPoint != null)
{
System.Windows.Forms.MessageBox.Show("X = " + currentPoint.X + " ,Y = " + currentPoint.Y);
splitPoints.Next(out currentPoint, out partIndex, out vertexIndex);
}
}