brl-cad

图元是一种基本形状,在CAD(计算机辅助设计)软件包中具有唯一的多项式方程式,可用于更复杂形状的几何建模。 例子包括椭圆,球体,圆环,正方形,在我们的例子中是带有六边形方程(有六个根的多项式)的心形图元。

这个心形的原始符号(爱的象征,<3)可以被艺术家用来制作卡通动画,设计卡,皇家印章,横幅,礼物以及家庭和公共庆祝活动的礼物,例如婚礼,家庭聚会和情人节礼物。天。

本文通过重点介绍BRL-CAD (美国陆军研究实验室开发的开源CAD软件包)中心形图元的几何有用属性的实现,为CAD软件中图元的开发提供了指南。

首先,要建立开发BRL-CAD的环境,请遵循以下指示 。

心形图元的数据结构

该图显示了心脏形状的注释。 幻数hrt ,中心点v ,X轴xdir方向的向量,Y轴ydir方向的向量,Z轴zdir方向的向量以及从中心点到任一尖点的距离d

标记心形图元

心形图元唯一地存储在BRL-CAD的数据库中,其幻数为Ox6872743f ,即“?hrt?”的十六进制等效形式。 。 我们还增加了src / libbu / magic.cinclude / magic.hinclude / raytrace.h中的原语的最大数量。

在BRL-CAD中标记了心形图元之后,我们继续编写回调函数,该函数计算几何上有用的属性。 我们还使用了一个名为amour (爱的法语单词)的心形对象,该对象以原点(0,0,0)为中心,具有三个径向矢量(5,0,0),(0,5,0)和(0,0,5)以及到尖点的距离4。让我们假设此对象称为amour ,并存储在heart_example.g数据库中。

格式说明

为了了解实体的类型及其关键参数的值,我们编写了rt_hrt_describe()函数,该函数简单地以人类可读的格式打印心脏形状的参数。 为了描述amour对象,我们分别通过在archer命令提示符下运行l -t amourl amour命令,使用BRL-CAD的l命令以简洁和详细形式打印amour的参数。

数据库导入和导出

对于要在CSG(构造实体几何)中使用的心形图元,我们编写了一些函数,这些函数可以在数据库格式和内部格式之间导入和导出数据。

输入支持

然后,实现了使用键盘在mgedarcher界面中键入心形图元的参数的适当支持。 为了测试数据库的导入和导出以及支持属性的类型,我们在amrt hrt 0 0 0 5 0 0 0 5 5 0 0 0 5 4命令中运行了BRL-CAD,键入名称,原始类型( hrt )和如图所示,将参数的amour输入到了archer命令行中。

边界框

几何模型的边界框是指模型所在的体积最小的框,更像是所有封闭体积的集合的最小上限。 为了计算心脏形状的边界框,我们编写了rt_hrt_bbox()函数,该函数分别计算边界框的最小点(最左下角)和最大点(最左下角)。 要报告amour对象的边界框的范围,我们通过在mgedarcher命令提示符下运行bb -qe amour命令来打印其最小和最大点。 然后,我们在弓箭 手中运行了bb -qv amour命令,以便以立方毫米为单位报告爱恋对象的体积。 之后,我们通过运行BB -qd恋情报道的长度,宽度和恋情边框的高度。 最后,要报告边界框的体积和尺寸,我们在archer的命令提示符中运行了bb amour命令。

线框

为了将心形图元的线框构建到BRL-CAD的功能中,我们编写了rt_hrt_plot()rt_hrt_24pts()函数。 心形图元的线框由沿Z轴对齐的多个椭圆组成,每个椭圆由24个边组成。 当我们沿Z轴正方向前进时,我们使用八个椭圆(半径减小)来构图左右瓣的上部。 每个椭圆的24个必需点是由rt_hrt_24pts()函数计算的,该函数计算相隔15 度的 24个点。

最后,将不同的椭圆连接在一起以使线框具有更多的等高线。 使用draw命令查看线框,并且-C选项允许我们选择其显示颜色。 要使用白线绘制amour对象的线框,我们运行了draw -C 255/0/0 amour命令。

光线追踪

通过光线追踪,使心形图元具有表面表示。 光线追踪的核心是求解直线和曲面的交点。 许多有趣的表面已被编写为该位置的多项式函数,并且没有遗漏心形。 我们工作的独特之处在于,我们证明了使用基于Laguerre的寻根器进行的光线追踪适用于六次方程(6级)。 为了做到这一点,我们编写了rt_hrt_prep()rt_hrt_norm()rt_hrt_shot()rt_hrt_print()函数。

为了测试心形图元的光线跟踪特性是否有效,我们使用了BRL-CAD的rt命令,该命令可以光线跟踪对象。 使用rt命令,我们分别以彼此成1度的方位角和以我们的视点为35度的仰角产生了360幅图像。 这些图像的宽度和高度分别为640和480像素。

#!/ bin / sh

因为我在'loop 000 359 1'中;

rt -a $ i -e 35 -w 640 -n 480 -o image $ i.png heart_example.g amour

做完了

这是从旁边,上方和下方看到的光线追踪的恋爱物体的一些图像。

从旁边看到光线追踪的恋爱物体的视图。

从上方查看光线追踪的恋爱物体的视图。

从下方查看光线追踪的恋爱物体的视图。

在用填充的零对这些图像进行适当的排序之后,我们使用ImageMagick 转换命令将它们合成为单个动画视频,该视频显示了从旁边旋转的心形图元。

本文详细介绍了演讲者的技术方面,该演讲基于作者在BRL-CAD主持下在BRL-CAD中进行的“心形原始体的实现”项目,将在德克萨斯州奥斯汀的OSCON 2017上进行演讲“来自非洲,充满爱” Google Summer of Code计划。 如果您有兴趣参加会议,请在注册时使用此折扣代码,以供我们的读者使用: PCOS

翻译自: https://opensource.com/article/17/4/primitive-shapes-BRL-CAD

brl-cad

brl-cad_如何使用BRL-CAD绘制基本形状相关推荐

  1. 地图画指定区域_零基础学CAD绘制一张桌子为例,使亲们更好地熟悉三维绘图环境...

    嘉灏今天分享第十课零基础学零基础学CAD绘制一张桌子为例,使亲们更好地熟悉三维绘图环境的知识了解,有视频课程,亲们可以看视频教程,再次感谢大家的支持与信任. 桌子 BOX(命令) 创建三维实体长方体. ...

  2. cad怎么画程序流程图_如何用cad绘制完整的流程图

    不管什么行业肯定都会用到流程图,这种流程图大家一定要掌握,对工作有用的.很多刚学习的新手小伙伴可能还不知道,下面是学习啦小编带来关于如何用cad绘制完整的流程图的内容,希望可以让大家有所收获! 用ca ...

  3. cad流程图怎么画文丘里_用CAD绘制交互流程图的方法步骤

    以特定的图形符号加上说明,表示算法的图,称为流程图或框图.那么大家知道如何用CAD绘制流程图吗?下面是学习啦小编整理的如何用CAD绘制流程图的方法,希望能给大家解答. 什么是流程图 以特定的图形符号加 ...

  4. 用CAD绘制奥迪车标

    如何用CAD绘制一个奥迪车标呢?这期就来讲解一下. 操作工具 操作系统:Windows10 CAD软件:CAD梦想画图 步骤 1.首先先使用圆(C)画一个直径为1000的大圆,如下图动画所示: 绘制大 ...

  5. 计算机绘图画马桶,CAD绘制马桶坐便器的方法

    CAD绘制马桶坐便器的方法 如何利用CAD绘制马桶坐便器,下面我们来看看CAD绘制马桶的教程.掌握了它便可以让读者能熟练掌握圆角命令的使用方法. 1.正常启动中望CAD软件,选择"文件|保存 ...

  6. CAD绘制直线时第二个点输入绝对坐标和相对坐标(相对第一个点的坐标)切换

    CAD绘制直线时第二个点输入绝对坐标和相对坐标(相对第一个点的坐标)切换 利用F12快捷键来实现,F12快捷键是"隐藏动态输入"的功能切换(如下图),此快捷键需保留默认设置,要是有 ...

  7. lisp工具箱for中望_中望CAD绘制地面排版图

    CAD绘图行业中做了很多年了,很钟情于LISP程序.很多时候我们需要的功能可以和CAD联系,一起探讨需要编译的LISP程序.下面介绍一个由中望CAD开发工程师按我们要求编译的一个LISP程序,带来的设 ...

  8. AUTOCAD——跨文件原位粘贴命令、如何用CAD绘制六角星

    ** 跨文件原位粘贴命令 ** 将一个文件中图形带固定基点复制到另一个文件中去. 执行方式 1.选择复制对象. 2.输入跨文件原位粘贴命令"copybase"或"Ctrl ...

  9. CAD绘制等分点(定距、定数)

    练习用CAD绘制等分点 分成两种,分别为定距分点和定数分点 前者指按照一定的距离在给出的线上绘制等分点 后者将已知的线分为确定的份数,绘制等分点 这里用绘制燃气灶的燃气孔为例: 首先绘制两个长方形作为 ...

  10. HTML绘制齿轮,如何用CAD绘制三维立体齿轮??

    CAD常常应用于机械制图中,那么绘制齿轮这类的零件自然是必不可少的,今天我们就来讲解下怎么用CAD绘制三维立体的齿轮吧! 1.打开CAD软件,利用左侧的直线工具绘制两条垂直相交的直线:以其交点为圆心, ...

最新文章

  1. arcgis的server不可用
  2. Python入门100题 | 第078题
  3. monkeyrunner的录制与回放
  4. JAVA编写的7个规范
  5. 2016年第12本:成功就靠专注一件事
  6. Windows XP减肥法
  7. 团队管理(3)---如何成为一名优秀的管理者
  8. python基础7-函数
  9. memcached安装和使用
  10. js工厂模式和单例模式
  11. iOS11新增的Files文件管理器应用
  12. Java - 过滤器有哪些作用和用法?
  13. 2003服务器开机无限重启,Windows2003 系统自动重启
  14. EasyExcel 实现单元格数据下拉选
  15. 关于Redis的远程连接 Connection: Disconnect on error 问题
  16. torch.squeeze和torch.unsqueeze
  17. Myricetin/Myricitrin 杨梅素/杨梅苷98%,杨梅提取物
  18. Android TIF 应用实例-T960 应用添加后台TvView过程及代码
  19. 阿里云服务器共享计算型 n4 实例详解/优惠价格/如何选择
  20. B - Simpsons’ Hidden Talents

热门文章

  1. 中兴pon网络设备升级,原理,教程,实例
  2. 【原创】2018.07.07 考试 //生气的奶牛 无线电通信 奶牛修 堡垒
  3. Google Earth Engine(GEE)——全球森林碳通量(2001-2021)数据集
  4. Mysql给普通和分页查询结果加序号
  5. 流放者柯南rust_流放者柯南游戏评测
  6. 批量获取文件名称到excel表格?
  7. JavaScript 将html中空格(nbsp;)转成JavaScript中的空格
  8. 绕过EAC 简单的反作弊
  9. 园区定位导航系统——提供人员路线指引,打造信息化新型园区
  10. c语言中Format转换大小写,format,不只是格式化