多段线又被称为多义线,表示一起画的都是连在一起的一个复合对象,可以是直线也可以是圆弧并且它们还可以加不同的宽度。

主要用到函数说明:

_DMxDrawX::PathLineTo

把路径下一个点移到指定位置。详细说明如下:

DOUBLE dX

点的X坐标

DOUBLE dY

点的Y坐标

_DMxDrawX::DrawPathToPolyline

把路径变成一个Polyline。

C#中实现代码说明:

private void DrawPolyline()
{
//Polyline 又称多义线,就是可以绘制多条首尾相连的线,也可以是圆弧相连,同是可以制定线的开始和结束宽
//把颜色改回成黑白色
axMxDrawX1.DrawCADColorIndex = 0; //把线型改成实线
axMxDrawX1.LineType = ""; //设置线宽 4
axMxDrawX1.LineWidth = 4; //创建一个图层,名为"PolylineLayer"
axMxDrawX1.AddLayer("PolylineLayer"); //设置当前图层为"PolylineLayer"
axMxDrawX1.LayerName = ("PolylineLayer"); /*--------------------------------------------------*/
//用Polyline显示绘制矩形框 //定义下一个路径的开始点
axMxDrawX1.PathMoveTo(0, 300); //路径的下一个点
axMxDrawX1.PathLineTo(100, 300); //路径的下一个点
axMxDrawX1.PathLineTo(100, 400); //路径的下一个点
axMxDrawX1.PathLineTo(0, 400); //把路径设置成闭合
axMxDrawX1.PathMakeClosed(); //把路径闭合,生成一个举行框
axMxDrawX1.DrawPathToPolyline(); /*--------------------------------------------------*/
//绘制一个有宽度,带线型的矩形框
//定义一个路径的开始点
axMxDrawX1.PathMoveTo(200, 300); //路径的下一个点
axMxDrawX1.PathLineTo(300, 300); //路径的下一个点
axMxDrawX1.PathLineTo(300, 400); //路径的下一个点
axMxDrawX1.PathLineTo(200, 400); axMxDrawX1.AddLinetype("MyLineType3", "30, -10"); axMxDrawX1.LineType = "MyLineType3"; axMxDrawX1.DrawCADColorIndex = 255; axMxDrawX1.LineWidth = 5; //把路径设置成闭合
axMxDrawX1.PathMakeClosed();
//把路径闭合,生成一个举行框
axMxDrawX1.DrawPathToPolyline(); /*--------------------------------------------------*/
//绘制一个有宽度的矩形框
//定义路径的开始点
axMxDrawX1.PathMoveTo(400, 300);
//定义路径的下一个点
axMxDrawX1.PathLineTo(500, 300);
//定义路径的下一个点
axMxDrawX1.PathLineTo(500, 400);
//定义路径的下一个点
axMxDrawX1.PathLineTo(400, 400);
//把路径设置成闭合
axMxDrawX1.PathMakeClosed();
//修改颜色
axMxDrawX1.DrawCADColor = 65280;
//把线型设置成实线
axMxDrawX1.LineType = "";
//设置线宽
axMxDrawX1.LineWidth = 4;
//把闭合路径设置成一个矩形框
axMxDrawX1.DrawPathToPolyline(); /*--------------------------------------------------*/
//绘制一个有宽度的,不闭合的矩形框
//定义一个路径的起始点
axMxDrawX1.PathMoveTo(600, 300);
//定义下一个点
axMxDrawX1.PathLineTo(700, 300);
//定义下一个点
axMxDrawX1.PathLineTo(700, 400);
//定义下一个点
axMxDrawX1.PathLineTo(600, 400);
//设置线的颜色
axMxDrawX1.DrawCADColor = 255;
//设置线型为实线
axMxDrawX1.LineType = "";
//设置线宽10
axMxDrawX1.LineWidth = 10;
//把闭合路径设置成一个矩形框
axMxDrawX1.DrawPathToPolyline();
/*--------------------------------------------------*/
//绘制一个有宽度的三角形
//定义路径的起始点
axMxDrawX1.PathMoveTo(800, 300);
//定义下一个点
axMxDrawX1.PathLineTo(900, 300);
//定义下一个点
axMxDrawX1.PathLineTo(900, 400);
//闭合路径
axMxDrawX1.PathMakeClosed();
//设置线的颜色
axMxDrawX1.DrawCADColor = 62580;
//设置线型为实线
axMxDrawX1.LineType = "";
//设置线宽10
axMxDrawX1.LineWidth = 5;
//闭合路径,把闭合路径设置成一个三角形
axMxDrawX1.DrawPathToPolyline();
/*--------------------------------------------------*/
//绘制一个箭头
axMxDrawX1.PathMoveToEx(1000, 300, 10, 10, 0);
//设置路径下一点
axMxDrawX1.PathLineToEx(1000, 500, 30, 0, 0);
//设置路径下一点
axMxDrawX1.PathLineTo(1000, 530);
//闭合路径,把闭合路径设置成一个箭头
axMxDrawX1.DrawPathToPolyline(); /*--------------------------------------------------*/
//绘制一个虚线箭头
axMxDrawX1.PathMoveToEx(1100, 300, 10, 10, 0);
//设置路径下一点
axMxDrawX1.PathLineToEx(1100, 500, 30, 0, 0);
//设置路径下一点
axMxDrawX1.PathLineTo(1100, 580);
//设置线型为实线“MyLineType3”
axMxDrawX1.LineType = "MyLineType3";
//闭合路径,把闭合路径设置成一个虚线箭头
axMxDrawX1.DrawPathToPolyline(); /*--------------------------------------------------*/
//绘制一个圆弧箭头
axMxDrawX1.PathMoveToEx(1200, 300, 10, 10, -0.34);
//设置路径下一点
axMxDrawX1.PathLineToEx(1200, 500, 30, 0, 0.34);
//设置路径下一点
axMxDrawX1.PathLineTo(1200, 600);
//设置线的颜色
axMxDrawX1.DrawCADColor = 255;
//设置线型为实线“MyLineType3”
axMxDrawX1.LineType = "MyLineType3";
//闭合路径,把闭合路径设置成一个圆弧箭头
axMxDrawX1.DrawPathToPolyline(); //把所有实体都放到当前显示视区
axMxDrawX1.ZoomAll(); //更新视区显示
axMxDrawX1.UpdateDisplay();
}
05-11 21:55