返回介绍

绘制多线段

发布于 2023-08-09 23:10:34 字数 5514 浏览 0 评论 0 收藏 0

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

主要用到函数说明:

函数名:_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();
}

效果展示:

通过点击绘制多段线按钮,触发DrawPolyline()事件,则用户可以在CAD控件视区绘制所需的多段线。如下图所示:

C#drawpl.png

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文