主要用到函数说明:

_DMxDrawX::DrawLine

绘制一个直线。详细说明如下:

参数 说明

DOUBLE dX1

直线的开始点x坐标

DOUBLE dY1

直线的开始点y坐标

DOUBLE dX2

直线的结束点x坐标

DOUBLE dY2

直线的结束点y坐标

_DMxDrawX::DrawText

绘制一个单行文字。详细说明如下:

参数 说明

DOUBLE dPosX

>文字的位置的X坐标

DOUBLE dPosY

文字的位置的Y坐标

BSTR pszText

文字内容字符串

DOUBLE dHeight

文字高度

DOUBLE dRotation

文字的旋转角度

SHORT horizontalMode

文字的水平对齐方式,0=kTextLeft,1=kTextCenter,2=kTextRight

SHORT verticalMode

文字的竖直对齐方式,1=kTextBottom,2=kTextVertMid,3=kTextTop

IMxDrawCustomEntity::Draw

把实体绘制到图上。一般用于动态拖放时,在拖放结束时,绘制到图上。

js中实现代码说明:

动态拖放时的绘制事件:

  1. function DynWorldDrawMatrix( pCustomEntity, pWorldDraw, curPt) {
  2. //与用户交互在图面上提取一个点
  3. var vBasePt = pCustomEntity.GetPoint("BasePoint");
  4. //计算中心点位置
  5. var centerPt = mxOcx.NewPoint();
  6. {
  7. centerPt.x = curPt.x + (vBasePt.x - curPt.x) / 2;
  8. centerPt.y = curPt.y + (vBasePt.y - curPt.y) / 2;
  9. }
  10. //计算面积(取绝对值)
  11. var arec = Math.abs(vBasePt.x - curPt.x) * Math.abs(vBasePt.y - curPt.y);
  12. //计算周长
  13. var girth = 2 * (Math.abs(vBasePt.x - curPt.x) + Math.abs(vBasePt.y - curPt.y));
  14. //变换视区长度
  15. var dHeigth = mxOcx.ViewLongToDocCoord(15);
  16. //绘制一个单行文字
  17. //参数一为文字的位置的X坐标 ;参数二为文字的位置的Y坐标 ;参数三为文字内容字符串
  18. //参数四为文字高度;参数五为文字的旋转角度
  19. //参数六为文字的水平对齐方式,0=kTextLeft,1=kTextCenter,2=kTextRight
  20. //参数七文字的竖直对齐方式,1=kTextBottom,2=kTextVertMid,3=kTextTop
  21. pWorldDraw.DrawText(centerPt.x, centerPt.y, "面积:" + arec.toFixed(2), dHeigth, 0, 1, 1);
  22. pWorldDraw.DrawText(centerPt.x, centerPt.y, "周长:" + girth.toFixed(2), dHeigth, 0, 1, 3);
  23. //绘制一个直线
  24. //参数一直线的开始点x坐标,参数二直线的开始点y坐标,参数三直线的结束点x坐标,参数四直线的结束点y坐标
  25. pWorldDraw.DrawLine (vBasePt.x, vBasePt.y, vBasePt.x, curPt.y);
  26. pWorldDraw.DrawLine (vBasePt.x, curPt.y, curPt.x, curPt.y);
  27. pWorldDraw.DrawLine (curPt.x, curPt.y, curPt.x, vBasePt.y);
  28. pWorldDraw.DrawLine (curPt.x, vBasePt.y, vBasePt.x, vBasePt.y);
  29. }

动态绘制矩形框:

  1. function DynDrawMatrix() {
  2. // 创建一个与用户交互取点的对象。
  3. var point1 = mxOcx.GetPoint(false,0,0,"\n 点取开始点:");
  4. if(point1 == null)
  5. {
  6. return;
  7. }
  8. var getSecondPt = mxOcx.NewComObject("IMxDrawUiPrPoint");
  9. getSecondPt.message = "第二点";
  10. getSecondPt.basePoint = point1;
  11. //不开启皮筋效果
  12. getSecondPt.setUseBasePt(false);
  13. //调用
  14. var spDrawData = getSecondPt.InitUserDraw("TestDynDrawMatrix");
  15. // 设置动态绘制参数.
  16. spDrawData.SetPoint("BasePoint", point1);
  17. // 开始取第二个点。
  18. if (getSecondPt.go() != 1)
  19. return;
  20. var ret = spDrawData.Draw();
  21. }

CAD交互绘制带周长面积的矩形框(网页版)的更多相关文章

  1. CAD交互绘制带周长面积的矩形框(com接口)

    主要用到函数说明: _DMxDrawX::DrawLine 绘制一个直线.详细说明如下: 参数 说明 DOUBLE dX1 直线的开始点x坐标 DOUBLE dY1 直线的开始点y坐标 DOUBLE ...

  2. CAD交互绘制带颜色宽度的直线(网页版)

    用户可以在CAD控件视区任意位置绘制直线. 主要用到函数说明: _DMxDrawX::DrawLine 绘制一个直线.详细说明如下: 参数 说明 DOUBLE dX1 直线的开始点x坐标 DOUBLE ...

  3. CAD交互绘制带颜色宽度的直线(com接口)

    用户可以在控件视区任意位置绘制直线. 主要用到函数说明: _DMxDrawX::DrawLine 绘制一个直线.详细说明如下: 参数 说明 DOUBLE dX1 直线的开始点x坐标 DOUBLE dY ...

  4. CAD交互绘制矩形批注(网页版)

    js中实现代码说明: 动态拖放时的绘制事件: function DynWorldDrawComment2( pCustomEntity,pWorldDraw, curPt) { // 得到绘制参数. ...

  5. CAD交互绘制矩形框(网页版)

    主要用到函数说明: _DMxDrawX::DrawLine 绘制一个直线.详细说明如下: 参数 说明 DOUBLE dX1 直线的开始点x坐标 DOUBLE dY1 直线的开始点y坐标 DOUBLE ...

  6. CAD交互绘制矩形框(com接口)

    主要用到函数说明: _DMxDrawX::DrawLine 绘制一个直线.详细说明如下: 参数 说明 DOUBLE dX1 直线的开始点x坐标 DOUBLE dY1 直线的开始点y坐标 DOUBLE ...

  7. CAD交互绘制圆形批注(网页版)

    js中实现代码说明: 动态拖放时的绘制事件: function DoDynWorldDrawFun(dX,dY,pWorldDraw,pData) { //自定义实体的GUID标识符 var sGui ...

  8. CAD交互绘制云线批注(网页版)

    js中实现代码说明: 动态拖放时的绘制事件: function DoDynWorldDrawFun(dX,dY,pWorldDraw,pData) { //自定义实体的GUID标识符 var sGui ...

  9. CAD动态绘制带面积周长的圆(com接口)

    CAD绘制图像的过程中,画圆的情况是非常常见的,用户可以在控件视区点取任意一点做为圆心,再动态点取半径绘制圆. 主要用到函数说明: _DMxDrawX::DrawCircle 绘制一个圆.详细说明如下 ...

随机推荐

  1. vue随笔2

    vue2.0中移除.sync修饰符 .sync可是实现props的双向数据绑定,但是会破坏[单向数据流]的假设.这样的话在改变子组件时,父组件同时也改变,你完全不知道它是何时悄悄地改变了父组件的状态. ...

  2. 基于 Algebird 谈一谈代数数据类型在数据聚合中的应用

    此文已由作者肖乃同授权网易云社区发布. 欢迎访问网易云社区,了解更多网易技术产品运营经验. 代数数据类型是指满足一定数学特性的数据类型, 这些特性使得计算能够很方便的并行化,在Scalding和  S ...

  3. ASP.NET Core Web API + Angular 仿B站(二)后台模型创建以及数据库的初始化

    前言: 本系列文章主要为对所学 Angular 框架的一次微小的实践,对 b站页面作简单的模仿. 本系列文章主要参考资料: 微软文档: https://docs.microsoft.com/zh-cn ...

  4. Educational Codeforces Round 12 A. Buses Between Cities

    题意: 从A到B的汽车每隔 a 分钟发车一次,从A到B要ta分钟. 从B到A汽车每隔b分钟发车一次,从B到A要ta分钟. Simion从A出发,问他在A->B的途中共遇到了多少辆车. 汽车都是从 ...

  5. bzoj 2560: 串珠子【状压dp】

    正难则反,设g[s]为集合s不一定联通的方案数,这个很好求,把边数+1乘起来即可,f[s]为s一定联通的方案数 f考虑容斥,就是g[s]-Σf[nw]*g[s^nw],nw是s的子集,这样就减掉了不联 ...

  6. Jquery | 基础 | 使用 jQuery 表单过滤选择器

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  7. eclipse | 配置JRE

    Window --> Preference --> Java ---> Installed JREs

  8. the little schemer 笔记(9)

    第九章 ...and Again, and Again, and, Again, ... 你想来点鱼子酱吗? 那就去找它吧. (looking a lat)是什么,其中a是 caviar, lat是( ...

  9. Flexbox布局的基本概念

    flex container(flex容器 或 弹性容器) flex容器是flex元素的的父元素. 通过设置display 属性的值为flex 或 inline-flex定义. 注旧版本的属性值: b ...

  10. Helvetic Coding Contest 2017 online mirror (teams allowed, unrated) M

    Description The marmots have prepared a very easy problem for this year's HC2 – this one. It involve ...