/// <summary>
/// 延长线段
/// </summary>
/// <param name="passLine">传入去的线</param>
/// <param name="mode">模式,1为从FromPoint处延长,2为从ToPint处延长,3为两端延长</param>
/// <param name="dis">延长的距离</param>
/// <returns></returns>
/// 创建人:懒羊羊
public IPolyline getExtendLine(IPolyline passLine, int mode, double dis)
{
IPointCollection pPointCol = passLine as IPointCollection;
switch (mode)
{
case 1:
IPoint fromPoint = new PointClass();
passLine.QueryPoint(esriSegmentExtension.esriExtendAtFrom, -1 * dis, false, fromPoint);
pPointCol.InsertPoints(0, 1, ref fromPoint);
break;
case 2:
IPoint endPoint = new PointClass();
object missing = Type.Missing;
passLine.QueryPoint(esriSegmentExtension.esriExtendAtTo, dis + passLine.Length, false, endPoint);
pPointCol.AddPoint(endPoint, ref missing, ref missing);
break;
case 3:
IPoint fPoint = new PointClass();
IPoint ePoint = new PointClass();
object missing2 = Type.Missing;
passLine.QueryPoint(esriSegmentExtension.esriExtendAtFrom, -1 * dis, false, fPoint);
pPointCol.InsertPoints(0, 1, ref fPoint);
passLine.QueryPoint(esriSegmentExtension.esriExtendAtTo, dis + passLine.Length, false, ePoint);
pPointCol.AddPoint(ePoint, ref missing2, ref missing2);
break;
default:
return pPointCol as IPolyline;
}
return pPointCol as IPolyline;
}
[ 本帖最后由 liyuanxiang 于 2008-5-23 12:05 编辑 ]
arcengine延长线段
最新推荐文章于 2023-09-04 12:49:32 发布