多段线又被称为多义线,表示一起画的都是连在一起的一个复合对象,可以是直线也可以是圆弧并且它们还可以加不同的宽度。
主要用到函数说明:
_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(); }
来源:https://www.cnblogs.com/yzy0224/p/11057214.html