为什么80%的码农都做不了架构师?>>>   

OpenCascade Primitives BRep - Sphere

eryar@163.com

Abstract. BRep is short for Boundary Representation. Boundary Representation gives a complete description of an object by associating topological and geometric information for solid modeling. In this case, objects are described by their boundaries. There are two types of information in BRep: Topological information and Geometric information. This paper is concerned with the sphere BRep in OpenCascade, and also show how to use Tcl script to dump sphere BRep info.

Key words. OpenCascade, BRep, Boundary Representation, Sphere, Singularity

1. Introduction

球体的几何数据主要是一个球面,在OpenCascade中球面的参数方程如下所示:

在《Parametric Curves and Surfaces》一文中,对参数曲线曲面进行了介绍,并重点介绍了球面的奇异性(Singularity)。本文通过对Sphere的BRep表示进行分析,来理解边界表示法中对参数曲面上奇点(Singular Point)的处理及BRep_TEdge中包含的多种形式的曲线。

Figure 1.1 Sphere Generated by Tcl in Draw Test Harness

2. Dump Sphere BRep Info by Tcl

在OpenCascade中使用Tcl脚本来测试一些想法真是很方便,如这里要输出球的边界表示的数据,只需要三条命令就可以完成。以下Tcl命令生成了一个圆心在原点(0,0,0),半径为10的球:

Figure 2.1 Dump Sphere BRep Info in Draw Test Harness

Figure 2.2 Display the Sphere in Draw

与《OpenCascade Primitives BRep - Box》一样,根据这些信息,从Vertex开始编号,来分析球的BRep表示。

3. Sphere BRep in OpenCascade

球的拓朴顶点Vertex有两个,分别是#7(0, 0, -10)和#9(0, 0, 10),如下图所示:

Figure 3.1 Vertex of Sphere BRep in OpenCascade

Figure 3.2 Curve Representation of BRep_TEdge

边Edge有三种表现形式,分别是#5,#6和#8,其中#5和#8是退化边(Degenerated Edge),即球面参数方程的奇点(Singular Point),在前文《PCurve - Curve on Surface》中分析曲面上曲线PCurve时已经讨论过,此处略过。本文只对#6边中的几何信息进行详细分析。

Figure 3.3 Edge #6 of Sphere BRep in OpenCascade

从拓朴边中可以看出#6Edge中的曲线有三个:一是三维空间曲线(Curve 3D)1;另外两个是曲面上曲线。其中三维空间曲线1的参数方程及其参数如下图所示:

Figure 3.4 Parameters and Parametric equation of the Curve 3D

由上图可知,三维空间曲线1是一个圆,圆心位于坐标原点(0,0,0),半径为10,且位于XOZ平面上,对应范围的起点和终点分别为:

同理根据曲面上曲线的PCurve的定义,可以计算出曲面1上的曲线2和3,它们表示的曲线与三维空间曲线1相同,即边#6是衔接边(Seam Edge),对应OpenCascade中即是BRep_CurveOnClosedSurface。综上所述,可以画出球上的Edge,如下图所示:

Figure 3.5 Edges of the Sphere

Figure 3.6 Wire of the Sphere

由上图可知在形成Wire时,Edge6使用了两次且方向相反,退化边(Degenerated Edge)的方向可忽略,因为其已经退化为一点。根据Wire的信息画出球的Wire如下图所示:

Figure 3.7 Wire of the Sphere(Wire in Yellow color)

由Wire#4组成了Face#3,Face#3中的几何曲面为1。曲面1是一个参数的球面。由Face#3组成Shell #2,由Shell#2组成了Solid#1。球的边界表示的分析就结束了。

4. Conclusion

本文通过使用Tcl脚本在Draw Test Harness中生成球的BRep边界表示信息,分析了球在OpenCascade中的组织方式。对BRep中边包含的多种几何曲线形式进行了解。

5. References

1. OpenCascade, Test Harness User’s Guide 2013

2. OpenCascade, BRep Format Description White Paper, 2013

3. John K. Ousterhout, Tcl and Tk Toolkit, 1993

PDF Version: OpenCascade Primitives BRep-Sphere

转载于:https://my.oschina.net/eryar/blog/347831

OpenCascade Primitives BRep - Sphere相关推荐

  1. OpenCascade Primitives BRep - Box

    为什么80%的码农都做不了架构师?>>>    OpenCascade Primitives BRep - Box eryar@163.com Abstract. BRep is s ...

  2. OpenCascade Primitives BRep-Cylinder

    为什么80%的码农都做不了架构师?>>>    OpenCascade Primitives BRep-Cylinder eryar@163.com Abstract. BRep i ...

  3. OpenCascade学习一:OpenCascade的重要类解释和OpenCascade的Brep方式表示几何解释

    OpenCascade的重要API和类解释 链接:https://blog.csdn.net/qq_22642239/article/details/88710106 OpenCascade的边界表示 ...

  4. OpenCASCADE Make Primitives-Sphere

    为什么80%的码农都做不了架构师?>>>    OpenCASCADE Make Primitives-Sphere eryar@163.com Abstract. The sphe ...

  5. OpenCASCADE BRep vs. OpenNURBS BRep

    为什么80%的码农都做不了架构师?>>>    OpenCASCADE BRep vs. OpenNURBS BRep eryar@163.com Abstract. BRep sh ...

  6. Geometry Surface of OpenCascade BRep

    Geometry Surface of OpenCascade BRep eryar@163.com 摘要Abstract:几何曲面是参数表示的曲面 ,在边界表示中其数据存在于BRep_TFace中, ...

  7. Locations Section of OpenCascade BRep

    Locations Section of OpenCascade BRep eryar@163.com 摘要Abstract:本文结合OpenCascade的BRep格式描述文档和源程序,对BRep格 ...

  8. OpenCascade BRep Format Description

    为什么80%的码农都做不了架构师?>>>    OpenCascade BRep Format Description eryar@163.com 摘要Abstract:本文结合Op ...

  9. Geometry Curve of OpenCascade BRep

    为什么80%的码农都做不了架构师?>>>    Geometry Curve of OpenCascade BRep eryar@163.com 摘要Abstract:几何曲线是参数 ...

最新文章

  1. runtime error: invalid memory address or nil pointer dereference
  2. 八十八、Webpack打包工具
  3. 台式电脑计算机硬盘清理,台式电脑重装系统win7清理磁盘碎片的方法
  4. 同步装饰器来替换线程安全类
  5. Unity-游戏小地图实战(前述知识点回顾与运用)
  6. iOS 使用 Core Plot 绘制统计图表入门
  7. 剑指offer python实现_剑指offer系列python实现 日更(三)
  8. php 上传excel到mysql_PHP上传Excel文件导入数据到MySQL数据库示例
  9. rocket mq 监听端口_如何使用Jmeter实现MQ数据的发送和接收?性能测试实战篇
  10. 选择数据分析软件时要注意什么
  11. !!! SQL 数据库开发基础 传智!
  12. 2M口,电口,光口的区别
  13. 毕业设计第一周的计划
  14. P2P概览与原理解析
  15. matlab 命令打开ANSYS,matlab如何调用ansys
  16. 无线通信设备安装工程概预算编制_珠海制冷设备安装工程
  17. 麻省理工学院公开课:计算机科学及编程导论 课堂笔记
  18. Therefore, hence, so, then, thus
  19. 合肥市直计算机知识pdf,事业单位计算机专业知识整理(全)-20210419115129.pdf-原创力文档...
  20. MDIO/MDC接口

热门文章

  1. 微信开发者小程序基础
  2. 点击咨询弹出扣扣;聊天对话框
  3. 软考总结(1)——数据库设计
  4. Spring Boot 2.X - Spring Boot整合Swagger2(starter方式)
  5. Python中类的基本用法
  6. 中年微软从创新转向管理和控制的平衡术
  7. 微信小程序实现身份证拍及摄裁剪功能
  8. c语言分号怎么打,问什么C程序里总是提示缺少分号;,而明明有分号?
  9. 罗马数字转换器(用罗马数字构造元素的值取模实现)
  10. Linux中tac命令倒序查询日志