主要用到函数说明:
_DMxDrawX::DrawLine
绘制一个直线。详细说明如下:
参数 | 说明 |
---|---|
DOUBLE dX1 |
直线的开始点x坐标 |
DOUBLE dY1 |
直线的开始点y坐标 |
DOUBLE dX2 |
直线的结束点x坐标 |
DOUBLE dY2 |
直线的结束点y坐标 |
IMxDrawCustomEntity::Draw
把实体绘制到图上。一般用于动态拖放时,在拖放结束时,绘制到图上。
js中实现代码说明:
动态拖放时的绘制事件:
function DynWorldDrawMatrix1( pCustomEntity, pWorldDraw, curPt) { //与用户交互在图面上提取一个点 var vBasePt = pCustomEntity.GetPoint("BasePoint"); //绘制一个直线 //参数一直线的开始点x坐标,参数二直线的开始点y坐标,参数三直线的结束点x坐标,参数四直线的结束点y坐标 pWorldDraw.DrawLine (vBasePt.x, vBasePt.y, vBasePt.x, curPt.y); pWorldDraw.DrawLine (vBasePt.x, curPt.y, curPt.x, curPt.y); pWorldDraw.DrawLine (curPt.x, curPt.y, curPt.x, vBasePt.y); pWorldDraw.DrawLine (curPt.x, vBasePt.y, vBasePt.x, vBasePt.y); }
动态绘制矩形框:
function DrawPathToPolyline() { // 创建一个与用户交互取点的对象。 var point1 = mxOcx.GetPoint(false,0,0,"\n 点取开始点:"); if(point1 == null) { return; } var getSecondPt = mxOcx.NewComObject("IMxDrawUiPrPoint"); getSecondPt.message = "第二点"; getSecondPt.basePoint = point1; //不开启皮筋效果 getSecondPt.setUseBasePt(false); //调用 var spDrawData = getSecondPt.InitUserDraw("TestDynDrawMatrix1"); // 设置动态绘制参数. spDrawData.SetPoint("BasePoint", point1); // 开始取第二个点。 if (getSecondPt.go() != 1) return; var ret = spDrawData.Draw(); }
来源:https://www.cnblogs.com/yzy0224/p/11076600.html