CAD如何动态绘制带面积周长的圆?
CAD绘制图像的过程中,画圆的情况是非常常见的,用户可以在控件视区点取任意一点做为圆心,再动态点取半径绘制圆。
主要用到函数说明:
_DMxDrawX::DrawCircle
绘制一个圆。详细说明如下:
| 参数 | 说明 |
|---|---|
|
DOUBLE dCenterX |
圆的中心X值 |
|
DOUBLE dCenterY |
圆的中心Y值 |
|
DOUBLE dRadius |
圆的半径 |
IMxDrawCustomEntity::Draw
把实体绘制到图上。一般用于动态拖放时,在拖放结束时,绘制到图上。
_DMxDrawXEvents::DynWorldDraw
动态拖放时的绘制事件。详细说明如下:
| 参数 | 说明 |
|---|---|
|
DOUBLE dX |
当前鼠标位置X坐标 |
|
DOUBLE dY |
当前鼠标位置Y坐标 |
|
IDispatch* pWorldDraw |
IMxDrawWorldDraw对象,用于动态绘制 |
|
IDispatch* pData |
IMxDrawCustomEntity对象,动态绘制数据 |
_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 |
IMxDrawPoint::DistanceTo
计算两个点的距离。
c#中实现代码说明:
动态拖放时的绘制事件:
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
private void DrawCircle(){ // 创建一个与用户交互取点的对象。 MxDrawUiPrPoint getPt = new MxDrawUiPrPoint(); getPt.message = "第一点"; if (getPt.go() != MCAD_McUiPrStatus.mcOk) return; MxDrawUiPrPoint getSecondPt = new MxDrawUiPrPoint(); getSecondPt.message = "第二点"; //调用 MxDrawCustomEntity spDrawData = getSecondPt.InitUserDraw("TestDynDrawCircle"); // 设置动态绘制参数. spDrawData.SetPoint("BasePoint", getPt.value()); // 开始取第二个点。 if (getSecondPt.go() != MCAD_McUiPrStatus.mcOk) return; spDrawData.Draw();} |
动态绘制圆:
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
if (sGuid == "TestDynDrawCircle"){ MxDrawPoint pt1 = pCustomEntity.GetPoint("BasePoint"); double dR = pt1.DistanceTo(curPoint); //计算面积(取绝对值) double arec = dR * dR * Math.PI; //计算周长 double girth = 2 * dR * Math.PI; //变换视区长度 double dHeigth = axMxDrawX1.ViewLongToDocCoord(15); //绘制一个单行文字 //参数一为文字的位置的X坐标 ;参数二为文字的位置的Y坐标 ;参数三为文字内容字符串 //参数四为文字高度;参数五为文字的旋转角度 //参数六为文字的水平对齐方式,0=kTextLeft,1=kTextCenter,2=kTextRight //参数七文字的竖直对齐方式,1=kTextBottom,2=kTextVertMid,3=kTextTop pWorldDraw.DrawText(pt1.x, pt1.y, "面积:" + arec, dHeigth, 0, 0, MCAD_McVerticalAlignment.mcVerticalAlignmentTop); pWorldDraw.DrawText(pt1.x, pt1.y, "周长:" + girth, dHeigth, 0, 0, MCAD_McVerticalAlignment.mcVerticalAlignmentBottom); pWorldDraw.DrawCircle(pt1.x, pt1.y, dR); } |
CAD如何动态绘制带面积周长的圆?的更多相关文章
- CAD动态绘制带面积周长的圆(com接口)
CAD绘制图像的过程中,画圆的情况是非常常见的,用户可以在控件视区点取任意一点做为圆心,再动态点取半径绘制圆. 主要用到函数说明: _DMxDrawX::DrawCircle 绘制一个圆.详细说明如下 ...
- C#使用多态求方形面积周长和圆的面积周长
class class1 { public static void Main(string[] args) { //使用多态求矩形面积与周长和圆的面积与周长 Shape cl = ); double ...
- 使用 Win2D 绘制带图片纹理的圆(或椭圆)
使用 Win2D 绘制图片和绘制椭圆都非常容易,可是如何使用 Win2D 绘制图片纹理的椭圆呢? 本文内容 重力迷宫小球 Win2D 实现 关于 CanvasCommandList 重力迷宫小球 ▲ ...
- CAD交互绘制带颜色宽度的直线(网页版)
用户可以在CAD控件视区任意位置绘制直线. 主要用到函数说明: _DMxDrawX::DrawLine 绘制一个直线.详细说明如下: 参数 说明 DOUBLE dX1 直线的开始点x坐标 DOUBLE ...
- CAD交互绘制带颜色宽度的直线(com接口)
用户可以在控件视区任意位置绘制直线. 主要用到函数说明: _DMxDrawX::DrawLine 绘制一个直线.详细说明如下: 参数 说明 DOUBLE dX1 直线的开始点x坐标 DOUBLE dY ...
- CAD交互绘制带周长面积的矩形框(网页版)
主要用到函数说明: _DMxDrawX::DrawLine 绘制一个直线.详细说明如下: 参数 说明 DOUBLE dX1 直线的开始点x坐标 DOUBLE dY1 直线的开始点y坐标 DOUBLE ...
- CAD交互绘制带周长面积的矩形框(com接口)
主要用到函数说明: _DMxDrawX::DrawLine 绘制一个直线.详细说明如下: 参数 说明 DOUBLE dX1 直线的开始点x坐标 DOUBLE dY1 直线的开始点y坐标 DOUBLE ...
- iOS可视化动态绘制连通图
上篇博客<iOS可视化动态绘制八种排序过程>可视化了一下一些排序的过程,本篇博客就来聊聊图的东西.在之前的博客中详细的讲过图的相关内容,比如<图的物理存储结构与深搜.广搜>.当 ...
- iOS可视化动态绘制连通图(Swift版)
上篇博客<iOS可视化动态绘制八种排序过程>可视化了一下一些排序的过程,本篇博客就来聊聊图的东西.在之前的博客中详细的讲过图的相关内容,比如<图的物理存储结构与深搜.广搜>.当 ...
随机推荐
- Mariadb galera 集群
部署galera 多主架构 (galera集群多用于关键性业务,因为galera集群为了数据的一致性,采用的是同步的机制,这就使galera牺牲了一部分性能来换取数据一致性.) 环境准备:三台服务器 ...
- tf.image.resize_bilinear 图像缩放,双线性插值-图像中心对齐
http://www.cnblogs.com/yssongest/p/5303151.html 双线性插值算法及需要注意事项 input = tf.placeholder(tf.float32, sh ...
- Mac系统打开命令行终端及查看操作系统版本号的方法
Mac系统打开命令行终端的方法: 应用程序 --> 实用工具 --> 终端 Mac系统终端查看操作系统版本号的方法: 输入:#more /System/Library/CoreServic ...
- 基于Spark和Tensorflow构建DCN模型进行CTR预测
实验介绍 数据采用Criteo Display Ads.这个数据一共11G,有13个integer features,26个categorical features. Spark 由于数据比较大,且只 ...
- CentOS 6.5克隆后eth1与eth0的问题
CentOS 6.5克隆后eth1与eth0的问题 按照安装文档执行以下步骤时: 从克隆出来的虚拟机网卡都会被命名为eth1,而有些程序或者脚本,涉及到网卡的,默认写的是eth0,这时就存在要 ...
- redis之简单动态字符串(SDS)
O(N):时间复杂度 N的值越大 时间复杂度随N的平方增大 O(1):就是说N很大的时候,复杂度基本不增长了.基本就是常量了. 在Redis数据库里 包含字符串值的键值对 在底层都是由SDS实现的. ...
- [POJ3417]Network/闇の連鎖
Description 传说中的暗之连锁被人们称为 Dark. Dark 是人类内心的黑暗的产物,古今中外的勇者们都试图打倒它.经过研究,你发现 Dark 呈现无向图的结构,图中有 N 个节点和两类边 ...
- 381 Insert Delete GetRandom O(1) - Duplicates allowed O(1) 时间插入、删除和获取随机元素 - 允许重复
设计一个支持在平均 时间复杂度 O(1) 下, 执行以下操作的数据结构.注意: 允许出现重复元素. insert(val):向集合中插入元素 val. remove(val):当 val ...
- [译]The multi Interface
The multi Interfacemulti接口 The easy interface as described in detail in this document is a synchrono ...
- Windows Install Twisted 安装Twisted
1.下载twisted exe https://twistedmatrix.com/Releases/Twisted/15.4/ (注意最新版16.x没有适用于windows的exe,只能用旧版) 2 ...