返回介绍

绘制多线段

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

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

主要用到函数说明:

函数名:_DMxDrawX::PathLineTo

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

参数说明
DOUBLE dX点的X坐标
DOUBLE dY点的Y坐标

函数名:_DMxDrawX::DrawPathToPolyline

把路径变成一个Polyline。

js中实现代码说明:

function DrawPolyline() {
    //Polyline 又称多义线,就是可以绘制多条首尾相连的线,也可以是圆弧相连,同是可以指定线的开始和结束宽。

    //把颜色改回黑白色
    mxOcx.DrawCADColorIndex = 0;

    //把线型改成实线
    mxOcx.LineType = "";

    //设置线宽 4
    mxOcx.LineWidth = 0;

    //创建一个图层,名为"PolylineLayer"
    mxOcx.AddLayer("PolylineLayer"); ;

    //设置当前图层为"PolylineLayer"
    mxOcx.LayerName = "PolylineLayer";


    //《---------------------------------------》
    //用Plyline显示绘制矩形框

    //定义一个路径的开始点
    mxOcx.PathMoveTo(0, 300);

    //路径的一下个点
    mxOcx.PathLineTo(100, 300);

    //路径的一下个点
    mxOcx.PathLineTo(100, 400);

    //路径的一下个点
    mxOcx.PathLineTo(0, 400);

    //把路径设置成闭合
    mxOcx.PathMakeClosed();


    //把路径闭合,生成一个矩形框
    mxOcx.DrawPathToPolyline();

    //《---------------------------------------》
    //绘制一个有宽度,带线型的矩形框
    //定义一个路径的开始点
    mxOcx.PathMoveTo(200, 300);

    //路径的一下个点
    mxOcx.PathLineTo(300, 300);

    //路径的一下个点
    mxOcx.PathLineTo(300, 400);

    //路径的一下个点
    mxOcx.PathLineTo(200, 400);

    //把路径设置成闭合
    mxOcx.PathMakeClosed();

    mxOcx.AddLinetype("MyLineType3", "30,-10");

    mxOcx.LineType = "MyLineType3";

    mxOcx.DrawCADColorIndex = 255;

    mxOcx.LineWidth = 5;

    mxOcx.DrawPathToPolyline();

    //《---------------------------------------》
    //绘制一个有宽度的矩形框
    //定义一个路径的开始点
    mxOcx.PathMoveTo(400, 300);

    //路径的一下个点
    mxOcx.PathLineTo(500, 300);

    //路径的一下个点
    mxOcx.PathLineTo(500, 400);

    //路径的一下个点
    mxOcx.PathLineTo(400, 400);

    //把路径设置成闭合
    mxOcx.PathMakeClosed();

    mxOcx.LineType = ("");

    mxOcx.DrawCADColor = 65280;

    mxOcx.LineWidth = 10;

    mxOcx.DrawPathToPolyline();


    //《---------------------------------------》
    //绘制一个有宽度的矩形框
    //定义一个路径的开始点
    mxOcx.PathMoveTo(400, 300);

    //路径的一下个点
    mxOcx.PathLineTo(500, 300);

    //路径的一下个点
    mxOcx.PathLineTo(500, 400);

    //路径的一下个点
    mxOcx.PathLineTo(400, 400);

    //把路径设置成闭合
    mxOcx.PathMakeClosed();

    mxOcx.LineType = "";

    mxOcx.DrawCADColor = 65280;

    mxOcx.LineWidth = 10;

    mxOcx.DrawPathToPolyline();

    //《---------------------------------------》
    //绘制一个有宽度的,不闭合的矩形框
    //定义一个路径的开始点
    mxOcx.PathMoveTo(600, 300);

    //路径的一下个点
    mxOcx.PathLineTo(700, 300);

    //路径的一下个点
    mxOcx.PathLineTo(700, 400);

    //路径的一下个点
    mxOcx.PathLineTo(600, 400);

    //把路径设置成闭合
    mxOcx.LineType = "";

    mxOcx.DrawCADColor = 65280;

    mxOcx.LineWidth = 10;

    mxOcx.DrawPathToPolyline();


    //《---------------------------------------》
    //绘制一个有宽度的,三角形
    //定义一个路径的开始点
    mxOcx.PathMoveTo(800, 300);

    //路径的一下个点
    mxOcx.PathLineTo(900, 300);

    //路径的一下个点
    mxOcx.PathLineTo(900, 400);

    mxOcx.PathMakeClosed();

    //把路径设置成闭合
    mxOcx.LineType = "";

    mxOcx.DrawCADColor = 65280;

    mxOcx.LineWidth = 10;

    mxOcx.DrawPathToPolyline();


    //《---------------------------------------》
    //绘制一个箭头
    mxOcx.PathMoveToEx(1000, 300, 10, 10, 0);

    mxOcx.PathLineToEx(1000, 500, 30, 0, 0);

    mxOcx.PathLineTo(1000, 580);

    mxOcx.DrawPathToPolyline();


    //《---------------------------------------》
    //绘制一个虚线箭头
    mxOcx.PathMoveToEx(1200, 300, 10, 10, 0);

    mxOcx.PathLineToEx(1200, 500, 30, 0, 0);

    mxOcx.PathLineTo(1200, 580);

    mxOcx.DrawCADColor = 65535;

    mxOcx.LineType = ("MyLineType3");

    mxOcx.DrawPathToPolyline();

    //《---------------------------------------》
    //绘制一个圆弧箭头,-0.34是圆弧的凸度.

    //axMxDrawX1.PathMoveToEx 1400, 300, 10, 10, -0.34);
    mxOcx.PathMoveToEx(1400, 300, 10, 10, -0.34);

    mxOcx.PathLineToEx(1400, 500, 30, 0, 0.34);

    mxOcx.PathLineTo(1400, 600);

    mxOcx.DrawCADColor = 16776960;

    mxOcx.LineType = "MyLineType3";

    mxOcx.DrawPathToPolyline();


    //《---------------------------------------》
    //把所有的实体都放到当前显示视区
    mxOcx.ZoomAll();

    //更新视区显示
    mxOcx.UpdateDisplay();
}

效果展示:

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

drawpl.png

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

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

发布评论

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