C#中如何绘制一个四分之一的圆锥
C#中如何绘制一个四分之一的圆锥
思路:在C#中有自带的绘制圆锥的方法,
ConeElement coneElementLeft = new ConeElement(DgnModel dgnModel, Element templateElement, double topRadius, double bottomRadius, DPoint3d topCenter, DPoint3d bottomCenter, DMatrix3d rotation, bool isCapped);(这个创建方法对应的是MicroStation CE版本)
可这是绘制一个标准的圆锥,不能直接绘制出一个四分之一的圆锥,我们要通过剪切的思想,将原形体剪切好再放置相应的位置即可。
1.首先剪切好四分之一圆锥
//绘制圆锥BIM.SmartSolidElement Cone_L = app.SmartSolid.CreateCone(null, 0, boxStraightWingWallData.C2 * mm/ Session.Instance.GetActiveDgnModel().GetModelInfo().UorPerMaster, boxStraightWingWallData.C2 * mm / Session.Instance.GetActiveDgnModel().GetModelInfo().UorPerMaster);//绘制剪切圆锥的矩形体BIM.SmartSolidElement Slab_L = app.SmartSolid.CreateSlab(null, 2*boxStraightWingWallData.C2 * mm / Session.Instance.GetActiveDgnModel().GetModelInfo().UorPerMaster, 2*boxStraightWingWallData.C2 * mm / Session.Instance.GetActiveDgnModel().GetModelInfo().UorPerMaster, boxStraightWingWallData.C2 * mm / Session.Instance.GetActiveDgnModel().GetModelInfo().UorPerMaster);//将矩形体移到圆锥的一半位置BIM.Point3d p1 = app.Point3dFromXYZ(boxStraightWingWallData.C2 * mm / Session.Instance.GetActiveDgnModel().GetModelInfo().UorPerMaster, 0, 0);Slab_L.Move(p1);//剪切一半的圆锥BIM.SmartSolidElement Subtract_L = app.SmartSolid.SolidSubtract(Cone_L, Slab_L);//将矩形体移到一半圆锥的一半位置p1 = app.Point3dFromXYZ(-boxStraightWingWallData.C2 * mm / Session.Instance.GetActiveDgnModel().GetModelInfo().UorPerMaster, boxStraightWingWallData.C2 * mm / Session.Instance.GetActiveDgnModel().GetModelInfo().UorPerMaster, 0);Slab_L.Move(p1);//剪切一半的圆锥一半,Subtract_L即是四分之一圆锥Subtract_L = app.SmartSolid.SolidSubtract(Subtract_L, Slab_L);
注:这里绘制出的剪切体是以原点为坐标,在移动矩形体剪切的时候默认为其几何中心点作为移动点的初始点,绘制方法对应的是MicroStation V8i版本。
2.其次通过旋转变换放置相应位置
//绕Z轴旋转法向量与Y轴的正方向的夹角BIM.Matrix3d ma_L = app.Matrix3dFromVectorAndRotationAngle(app.Point3dFromXYZ(0, 0, 1), angle.Radians);BIM.Transform3d ta_L = app.Transform3dFromMatrix3d(ma_L);Subtract_L.Transform(ta_L);//剪切体放置的位置点BIM.Point3d P1 = ceDpoint_v8Point(leftCircleCenterPt);Subtract_L.Move(P1);P1 = app.Point3dFromXYZ(0, 0, boxStraightWingWallData.C2 / 2 * mm / Session.Instance.GetActiveDgnModel().GetModelInfo().UorPerMaster);Subtract_L.Move(P1);app.ActiveModelReference.AddElement(Subtract_L);long id_L = Subtract_L.ID;ElementId elemid_L = new ElementId(ref id_L);Element temp_L = Session.Instance.GetActiveDgnModel().FindElementById(elemid_L);
注:ceDpoint_v8Point()这个方法是将CE的DPoint3d点转换为V8i的DPoint3d点,将绘制方法与放置位置点统一。
3.最后处理好的形体绘制在图纸上
temp_L.AddToModel();
C#中如何绘制一个四分之一的圆锥相关推荐
- android小球移动代码,Android中如何绘制一个跟随手指移动的小球
Android中如何绘制一个跟随手指移动的小球 发布时间:2020-11-07 16:22:43 来源:亿速云 阅读:82 作者:Leah 本篇文章为大家展示了Android中如何绘制一个跟随手指移动 ...
- 小猪佩奇python_「小猪佩奇头像」使用python中turtle绘制一个小猪佩奇的头像 - seo实验室...
小猪佩奇头像 之前一直被佩奇的预告片刷屏,就想着用Python中的turtle模块来自己绘制一个海报目前完成了一个头,代码如下:之后会更新整幅图from turtle import * def eye ...
- canvas绘制四分之一圆_canvas中怎么绘制一个扇形?四分之一圆.
2016-01-13 回答 在html5 canvas 中,我们可以通过 arc 方法来绘制圆形: // context.arc(x, y, r, sangle, eangle, counterclo ...
- MATLAB中如何绘制一个球
在看到surf函数时,surf的MATLAB帮助文档中,有绘制一个球,所以想用MATLAB绘制一个球. 主要使用到sphere函数. sphere(n);绘制球的表面图,球由n*n个面组成. sphe ...
- 《Unity》如何在任意一条线段中心上绘制一个三角形。
例如,绘制一个这种三角形,我这里不特定指出Unity Editor ,他是一种数学知识. 例如,如图,先求出线段中心点c,然后指定一个边长 = m, 沿线段方向增加m距离,得到第一个点v0,同理,反向 ...
- python中怎么画一个机器猫_如何用Python画一只机器猫?
作者 | 人邮异步社区 责编 | 胡巍巍 出品 | CSDN博客 自信心是成功的源泉,对刚入门编程行业的初级程序员来说,多敲代码多做项目就是构建自信心的最好办法. 第一次学编程是在屏幕上敲出" ...
- Unity3D学习笔记1——绘制一个三角形
文章目录 1. 绪论 2. 概述 3. 详论 3.1. 准备 3.2. 实现 3.3. 解析 3.3.1. 场景树对象 3.3.2. 绘制方法 4. 结果 1. 绪论 最近想学习一下Unity3d,无 ...
- 原生WebGL场景中绘制多个圆锥圆柱
前几天解决了原生WebGL开发中的一个问题,就是在一个场景中绘制多个几何网格特征不同的模型,比如本文所做的绘制多个圆锥和圆柱在同一个场景中,今天抽空把解决的办法记录下来,同时也附上代码.首先声明,圆柱 ...
- python 子图_python 实现在一张图中绘制一个小的子图方法
有时候为了直观展现图的信息,可以在大图中添加小子图的方式进行数据分析,如下图所示: 具体的代码如下:该图连接了数据库,当然重要的不是数据展示,而是添加子图的方法. import matplotlib. ...
最新文章
- 在linux系统下实现音视频即时通讯的部分代码
- Tech ED的课程和动手实验营讲义已经发布,需要的赶紧去下载
- matlab 着色算法,colorization_matlab着色 - 源码下载|图形图象|图形图像处理(光照,映射..)|源代码 - 源码中国...
- 数据结构实验之栈与队列五:下一较大值(一)
- AndroidStudio中提示:Couldn‘t find meta-data for provider with authority
- Javacript和AngularJS中的Promises
- Android布局延伸状态栏,Android沉浸式全屏讲解(状态栏、导航栏处理)
- YOLOv5的详细使用教程,以及使用yolov5训练自己的数据集
- 蒙版操作—利用图层蒙版换脸
- 计算机组成原理图ei,(完整版)计算机组成原理试题库(含答案)-
- 不断尝试,做更好的自己|Fabia,很高兴再认识你
- ghost系统安装无法启动服务器,手把手教你重装Ghost系统错误怎么办
- 【Pytorch】torch.Tensor.expand_as()与torch.Tensor.expand()使用与比较
- 2022年9月11日:人生第一次相亲记录
- CS5266替代AG9311设计TYPEC转HDMI带PD3.0音视频拓展坞方案
- HDHCMS模板建立与栏目绑定的方法
- 真正标准,规范的企业网站建设合同书
- C语言入门-基础知识
- Maven 环境配置
- 论文中著名会议和期刊的一些介绍(持续更新中)
热门文章
- Java中的异常总结详解(异常类型、声明异常、抛出异常、捕获异常)
- 超牛叉的外网渗透详细教程
- E泰勒级数展开近似sin(x)的值
- java识别雨滴_如何实现一个简单的雨滴动画?手把手告诉你
- PIP出现Fatal error in launcher:
- ubuntu部署新环境第三方库的绝招-requirement.txt,pur的使用
- 依然那么“橙”,木瓜移动品牌焕新升级于今日正式发布~
- java——IDEA集成开发工具的介绍、下载、安装(教育邮箱申请)
- 新研究训练小老鼠充当分类器,识别Deepfake假声音,比计算机更靠谱
- IOS-触摸简单应用-触摸移动按钮