1、多段线又被称为多义线,表示一起画的都是连在一起的一个复合对象,可以是直线也可以是圆弧并且它们还可以加不同的宽度。
2、主要用到函数说明:_DMxDrawX::DrawLine
绘制一个直线。详细说明如下:
参数 | 说明 |
---|
DOUBLE dX1 | 直线的开始点x坐标 |
DOUBLE dY1 | 直线的开始点y坐标 |
DOUBLE dX2 | 直线的结束点x坐标 |
DOUBLE dY2 | 直线的结束点y坐标 |
3、_DMxDrawX::PathLineTo
把路径下一个点移到指定位置。详细说明如下:
参数 | 说明 |
---|
DOUBLE dX | 点的X坐标 |
DOUBLE dY | 点的Y坐标 |
4、_DMxDrawX::DrawPathToPolyline
把路径变成一个Polyline。
5、js中实现代码说明:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 | function DrawPolyline() { //与用户交互到在图上提取一个点 var point1 = mxOcx.GetPoint( false ,0,0, "\n 点取开始点:" ); if (point1 == null ) { return ; } //把路径的开始位置移动指定的点 //参数一为点的X坐标 ,参数二为点的Y坐标 mxOcx.PathMoveTo(point1.x,point1.y); //与用户交互到在图上提取一个点 var point2 = mxOcx.GetPoint( true ,point1.x,point1.y, "\n 点取下一个:" ); if (point2 == null ) { return ; } //建一个数组 var tmpobj = new Array(); //把路径下一个点移到指定位置 //参数一为点的X坐标 ,参数二为点的Y坐标 mxOcx.PathLineTo(point2.x,point2.y); var iCount = 0; //绘制一个直线 //参数一直线的开始点x坐标,参数二直线的开始点y坐标,参数三直线的结束点x坐标,参数四直线的结束点y坐标 var id = mxOcx.DrawLine(point1.x,point1.y,point2.x,point2.y); tmpobj[iCount] = id; iCount = iCount + 1; point1 = point2; while ( true ) { var point2 = mxOcx.GetPoint( true ,point1.x,point1.y, "\n 点取下一个:" ); if (point2 == null ) { break ; } mxOcx.PathLineTo(point2.x,point2.y); var id = mxOcx.DrawLine(point1.x,point1.y,point2.x,point2.y); tmpobj[iCount] = id; iCount = iCount + 1; point1 = point2; } var i = 0; for (;i < iCount;i++) { //由id删除一个对象 mxOcx.Erase(tmpobj[i] ); } //把路径变成一个Polyline mxOcx.DrawPathToPolyline(); } |
6、效果展示:
通过点击绘制多段线按钮,触发DrawPolyline()事件,则用户可以在CAD控件视区绘制所需的多段线。如下图所示:
![dydrawpl.png](https://i-blog.csdnimg.cn/blog_migrate/64d2f4f893d94efc9bf33bbe9506055b.png)