本文整理汇总了C#中Polyline.Weed方法的典型用法代码示例。如果您正苦于以下问题:C# Polyline.Weed方法的具体用法?C# Polyline.Weed怎么用?C# Polyline.Weed使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Polyline
的用法示例。
在下文中一共展示了Polyline.Weed方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: getPolylineBuffer
private static Polygon getPolylineBuffer(Polyline polyline, double distance, int pointsPerCircle, bool allowParallels)
{
polyline = (Polyline)polyline.Clone();
polyline.Weed(distance - distance * Math.Cos(Math.PI / pointsPerCircle));
Polygon temp = new Polygon();
List<Polygon> partialBuffers = new List<Polygon>();
ICollection<IGeometry> gc;
int c = 0;
foreach (LinePath path in polyline.Paths)
{
for (int i = 0; i < path.Vertices.Count - 1; i++)
{
Segment s = new Segment(path.Vertices[i], path.Vertices[i + 1]);
gc = temp.Union(getSegmentPreBuffer(s, Math.Abs(distance), pointsPerCircle, i == 0));
if (gc.Count > 0)
temp = (Polygon)((GeometryCollection)gc)[0];
c++;
if (c == 3)
{
partialBuffers.Add(temp);
temp = new Polygon();
c = 0;
}
}
}
if (temp.CoordinateCount > 0)
partialBuffers.Add(temp);
return mergePartialBuffers(partialBuffers, allowParallels);
}