主要用到函数说明:

_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中实现代码说明:

动态拖放时的绘制事件:

function DynWorldDrawMatrix( pCustomEntity, pWorldDraw, curPt) {
//与用户交互在图面上提取一个点
var vBasePt = pCustomEntity.GetPoint("BasePoint");
//计算中心点位置
var centerPt = mxOcx.NewPoint();
{
centerPt.x = curPt.x + (vBasePt.x - curPt.x) / 2;
centerPt.y = curPt.y + (vBasePt.y - curPt.y) / 2;
}
//计算面积(取绝对值)
var arec = Math.abs(vBasePt.x - curPt.x) * Math.abs(vBasePt.y - curPt.y);
//计算周长
var girth = 2 * (Math.abs(vBasePt.x - curPt.x) + Math.abs(vBasePt.y - curPt.y));
//变换视区长度
var dHeigth = mxOcx.ViewLongToDocCoord(15);
//绘制一个单行文字
//参数一为文字的位置的X坐标 ;参数二为文字的位置的Y坐标 ;参数三为文字内容字符串
//参数四为文字高度;参数五为文字的旋转角度
//参数六为文字的水平对齐方式,0=kTextLeft,1=kTextCenter,2=kTextRight
//参数七文字的竖直对齐方式,1=kTextBottom,2=kTextVertMid,3=kTextTop
pWorldDraw.DrawText(centerPt.x, centerPt.y, "面积:" + arec.toFixed(2), dHeigth, 0, 1, 1);
pWorldDraw.DrawText(centerPt.x, centerPt.y, "周长:" + girth.toFixed(2), dHeigth, 0, 1, 3);
//绘制一个直线
//参数一直线的开始点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 DynDrawMatrix() {
// 创建一个与用户交互取点的对象。
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("TestDynDrawMatrix");
// 设置动态绘制参数.
spDrawData.SetPoint("BasePoint", point1);
// 开始取第二个点。
if (getSecondPt.go() != 1)
return;
var ret = spDrawData.Draw();
}

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. python 查找IP地址归属地

    #!/usr/bin/env python # -*- coding: utf-8 -*- #查找IP地址归属地 #writer by keery_log #Create time:2013-10-3 ...

  2. 20180504-hm

    trail vt. 跟踪,追踪; 拖曳:让…拖或飘扬在后面; 拖沓而行; 跟在…后面; n. 小径; 足迹; 臭迹; 一缕;

  3. bzoj 5496: [2019省队联测]字符串问题【SAM+拓扑】

    有一个想法就是暴力建图,把每个A向有和他相连的B前缀的A,然后拓扑一下,这样的图是n^2的: 考虑优化建图,因为大部分数据结构都是处理后缀的,所以把串反过来,题目中要求的前缀B就变成了后缀B 建立SA ...

  4. P3007 [USACO11JAN]大陆议会The Continental Cowngress(2-SAT)

    简述:给出 n 个法案, m 头牛的意见, 每头牛有两个表决 格式为 “支持或反对某法案”, 每头牛需要至少满足一个表决, 不可能成立的话输出 IMPOSSIBLE, 否则输出方案, Y代表能, N代 ...

  5. TensorFlow多线程输入数据处理框架(三)——组合训练数据

    参考书 <TensorFlow:实战Google深度学习框架>(第2版) 通过TensorFlow提供的tf.train.batch和tf.train.shuffle_batch函数来将单 ...

  6. TC学习总结

    带宽管理: TC中规定描述带宽: mbps = 1024 kbps = 1024 * 1024 bps => byte/s mbit = 1024 kbit => kilo bit/s m ...

  7. C++十进制到任意进制

    #include<stdio.h> #include<string.h> #include<math.h> #include<iostream> #in ...

  8. Oracle之Char VarChar VarChar2

    Oracle之Char VarChar VarChar2 在Oracle数据库中,字符类型有Char.VarChar和VarChar2三种类型,但不大清楚各自区别在哪儿,平时基本上就是用VarChar ...

  9. 跟我一起玩Win32开发(5):具有单选标记的菜单

    帅哥们,美女们,下午好,我又来误人子弟,请做好准备. 今天,我们的目的是,想要实现下图中的这种菜单效果. 就是一种类似单选按钮的菜单,多个菜单项中,同时只有一个会被选中. 首先,我们在资源编辑器中,设 ...

  10. [POI2005]Sza-Template

    Description Byteasar 想在墙上涂一段很长的字符,他为了做这件事从字符的前面一段中截取了一段作为模版. 然后将模版重复喷涂到相应的位置后就得到了他想要的字符序列.一个字符可以被喷涂很 ...