OpenCASCADE开发指南<八>:OCC 数据结构分析之二三维几何数据

news2024/11/16 15:52:45

  数据结构,指的是数据元素之间的相互关系,尤其是数据的逻辑结构。选择数据结构的主要依据是数据的逻辑结构[6]。 因此, 本章将主要描述三种数据的逻辑结构。这三种数据包括:二维几何数据、三维几何数据和拓扑数据。
在这里插入图片描述

1 数据结构模块的整体框架

  OCC 的第二个模块是建模数据,也称数据结构。它主要为二维和三维几何模型提供数据结构。数据结构模块由四个工具箱组成:几何工具、二维几何、 三维几何和拓扑。各个工具箱提供的服务如表 4.1 所示。
在这里插入图片描述

2 二维几何数据结构

2.1 概述

  二维几何数据结构定义了二维空间上几何对象的数据结构, 主要由 Geom2d包提供。Geom2d 包提供了比 gp 包更大范围的对象。这些对象是非持久的,并且是通过引用而不是通过数值处理的。 复制一个实例, 只是将句柄拷贝而已, 对象没有被拷贝。 因此, 对一个实例(对象) 的改变, 将在所有引用它的地方发生改变。如果需要的对象不是单一的, 而是一系列的, 那么TColGeom2d 包(用来处理这类对象的集合容器) 将提供必要的功能。 特别地, 该包为通用类中那些标准的和经常使用的实例化提供几何对象。

  TColGeom2d 包为来自 Geom2d 包的曲线提供一维数组、 二维数组和序列的实现。所有这些对象能以两种不同的方式处理:句柄处理和数值处理。

2.2 TopAbs 包

  TopAbs 包提供通用枚举类, 用来描述拓扑学基本概念和处理枚举类的方法,不包含具体类。该包已经从拓扑包中分离出来了,因为对于所有拓扑工具而言,它的概念已经足够通用了, 可以通过保留独立的模型资源, 避免枚举类的重复定义。 TopAbs 定义了三个概念: 拓扑类型(由 TopAbs_ShapeEnum 类描述)、 拓扑方向(由 TopAbs_Orientation 类描述)和拓扑状态(由 TopAbs_State 类描述)。

2.2.1 拓扑类型

  TopAbs_ShapeEnum 枚举类列出了不同的拓扑类型。 一个拓扑模型可以看作一个由多个彼此相邻的对象组成的图表。 当在二维或三维空间上建立模型的一部分的时候,该部分的类型必须是 ShapeEnum 枚举类列出的类型之一。对于任何一个模型,里面可以找到的所有对象, TopAbs 包都列出了。 Top- Abs 包不能再扩展,但是可以用到它的一部分,例如,实心体的概念在二维中是没有意义的。
在这里插入图片描述

  表 4.2 给出 ShapeEnum 枚举类的各元素及其意义。表 4.2 中出现的枚举类术语是从复杂到简单依次排列的,因为在描述对象时, 可以说对象包含更简单的对象。 例如, 一个面引用了它的线框、 边和顶点。为了进一步理解 Shape 枚举类型,给出一个示意图(图 4.1),图中表示了部分Shape 枚举类型。
在这里插入图片描述

2.2.2 拓扑方向

  拓扑方向的概念由 TopAbs_Orientation 枚举类描述。 在许多建模器里都用到了方向;拓扑方向就是这种方向感的通用概念。当一个 Shape 限制了一个几何域时, 就说这个 Shape 具有拓扑方向。 拓扑方向的概念与边界的概念紧密联系。 需要用到拓扑方向的三种 Shape 有: 由顶点限制的曲线、 由边限制的曲面和由面限制的空间。

  无论哪种 Shape(作为维数更高的空间几何域的边界) 都定义了两个局部段,其中一个被指定为默认段。

  对于一条由顶点限制的曲线, 默认段就是一系列点(这些点的参数比顶点的大)。也就是说,沿着曲线方向,除去顶点,其它所有点就是该曲线的默认段。对于一个由边限制的曲面,它的默认段位于边的左边(沿着边的自然方向看, 即沿着逆时针方向看)。确切地说,默认段由曲面法向量和曲线切向量指出。对于一个由面限制的空间,它的默认段位于与曲面法向相反一边。

  基于这个默认段, 拓扑方向允许对保留段(称为 Shape 的内部或 Shape 的材质)进行定义。定义 Shape 的内部有四种拓扑方向,如表 4.3 所示。
在这里插入图片描述

  拓扑方向是一个非常通用的概念,只要有段或边界出现的地方就可以用到它。 例如, 当需要描述一条边与一个轮廓的交叉时, 不但可描述出交叉段的定点,而且可以描述出这条边是如何穿越该轮廓的——将边当成轮廓的一个边界, 如图4.2 所示。
在这里插入图片描述
表 4.4 给出了这四个拓扑方向的文字描述。
在这里插入图片描述

与 Orientation 枚举类对应, TopAbs 包定义了四种方法,如表 4.5 所示。
在这里插入图片描述

2.2.3 拓扑状态

  TopAbs_State 枚举类描述了段上一个或一组顶点的位置。 有四种位置, 如表4.6 所示。
在这里插入图片描述

  UNKNOWN 术语之所以被引入,是因为这个枚举类经常被用于表达一个可能失败的计算结果。 当无法判断点在内部还是外部的时候(通常这种情况发生在线框或面是开放的时候),就可以用到该术语,如图 4.3 所示。
在这里插入图片描述
  State 枚举类也适用于对象的各个部分。 图 4.4 表示了一条边(与一个面交叉)的各部分拓扑状态。
在这里插入图片描述

3 三维几何数据结构

  三维几何对象的数据结构主要由 Geom 包提供。

  Geom 包包含了所有的基本几何转换(如等价、 旋转、 平移、 镜像、 缩放和复合变换等)。另外, Geom 包也提供了一些基于几何对象引用定义的特殊函数(如在 B 样条曲线上增加一个控制点,对曲线进行改善等)。

  Geom 包中所有几何实体都是以 STEP 方式处理的。包中可实现的非持久的通过句柄处理的对象有: 点、 笛卡尔点、 向量、 方向具有幅值的向量、 轴、 曲线、直线、 圆锥、 圆、 椭圆、 双曲线与抛物线、 基本曲面、 平面、 边界曲线与边界曲面、 裁剪曲线与裁剪曲面、 非均匀有理化 B 样条曲线与曲面、 Bezier 曲线与曲面、圆柱面、球面与螺旋面、扫描曲面、线性挤压曲面、旋转曲面、偏移曲面。

  对于每一条曲线(具有一个参数),其局部特征有:点、导数、正切、法向量、曲率和曲率中心。

  对于每一个参数, 曲面(具有两个参数) 的局部特征有: 导数、 切线、 曲率中心、 点、 法向量、 最大曲率、 最小曲率、 曲率的主方向、 中间曲率和高斯曲率。

  另外, GeomLProp 和 Geom2dLProp 包提供了一些描述算法的类,如表 4.7所示。
在这里插入图片描述

  TColGeom 为那些来自 Geom 包的曲线和曲面提供一维数组、 二维数组和序列的实现。 所有这些可实现的对象有两种处理方式: 通过引用处理和通过数值处理。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1517328.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

GPT实战系列-如何让LangChain的Agent选择工具

GPT实战系列-如何让LangChain的Agent选择工具 LangChain GPT实战系列-LangChain如何构建基通义千问的多工具链 GPT实战系列-构建多参数的自定义LangChain工具 GPT实战系列-通过Basetool构建自定义LangChain工具方法 GPT实战系列-一种构建LangChain自定义Tool工具的简单方法…

ts文件怎么无损转换mp4?这样设置转换模式~

TS格式(Transport Stream)的起源可追溯到数字电视广播领域。设计初衷是解决视频、音频等多媒体数据在传输和存储中的问题。采用一系列标准技术,TS格式让视频信号能够以流的形式传输,因此在数字电视、广播等领域得到广泛应用。 MP4…

ChatGPT提问技巧——对抗性提示

ChatGPT提问技巧——对抗性提示 对抗性提示是一种允许模型生成能够抵御某些类型的攻击或偏差的文本的技术。这种技术可用于训练更健壮、更能抵御某些类型的攻击或偏差的模型。 要在 ChatGPT 中使用对抗性提示,应为模型提供一个提示,该提示的设计应使模…

Python数据分析-4

1.对于一组电影数据,呈现出rating,runtime的分布情况: #encodingutf-8 import pandas as pd import numpy as np from matplotlib import pyplot as plt file_path "./youtube_video_data/IMDB-Movie-Data.csv" df pd.read_csv(file_path) …

基于centos7的k8s最新版v1.29.2安装教程

k8s概述 Kubernetes 是一个可移植、可扩展的开源平台,用于管理容器化的工作负载和服务,可促进声明式配置和自动化。 Kubernetes 拥有一个庞大且快速增长的生态,其服务、支持和工具的使用范围相当广泛。 Kubernetes 这个名字源于希腊语&…

x86_64架构栈帧以及帧指针FP

文章目录 一、x86_64架构寄存器简介二、x86_64架构帧指针FP三、示例四、保存帧指针参考资料 一、x86_64架构寄存器简介 在x86架构中,有8个通用寄存器可用:eax、ebx、ecx、edx、ebp、esp、esi和edi。在x86_64(x64)扩展中&#xff…

StarRocks——滴滴的极速多维分析实践

背景 滴滴集团作为生活服务领域的头部企业,其中橙心优选经过一年多的数据体系建设,逐渐将一部分需要实时交互查询,即席查询的多维数据分析需求由ClickHouse迁移到了StarRocks中,接下来以StarRocks实现的漏斗分析为例介绍StarRocks…

对OceanBase进行 sysbench 压测前,如何用 obdiag巡检

有一些用户想对 OceanBase 进行 sysbench 压测,并向我询问是否需要对数据库的各种参数进行调整。我想起有一个工具 obdiag ,具备对集群进行巡检的功能。因此,我正好借此机会试用一下这个工具。 obdiag 功能的比较丰富,详细情况可参…

如何正确地设置Outlook SMTP发送电子邮件?

Outlook SMTP发送邮件配置方法?Outlook怎么开启SMTP? 在使用Outlook发送邮件时,正确设置SMTP服务器是确保邮件能够顺利发送的关键步骤。接下来,就让AokSend一起探讨如何正确地设置Outlook SMTP发送电子邮件吧! Outlo…

Spring web MVC(2)

1、RequestMapping称为路由映射(既是类注解也是方法注解提供访问路径) 2、RequestParam起到重命名的作用,也起到绑定的作用,传递集合list时会用到,多个值绑定给list,默认是必传参数如果不传参数需要设置re…

【设计模式】二、UML 类图与面向对象设计原则 之 UML概述

二、UML 类图与面向对象设计原则 (一)UML 类图 UML 概述类与类的UML图示类之间的关系 (二)面向对象设计原则 单一职责原则(Single Responsibility Principle, SRP)开闭原则(Open-Closed Princip…

react03

react03 修改脚手架创建的打包命令 根据scripts中的命令,执行npm run eject ,输入y, 如果对原始的脚手架文件有过改动需要进行将修改后的文件提交到git 历史区 ,防止暴露后的代码覆盖我们自己的文件 git 提交: git add . git commit -m ‘…

服务器Debian 12.x中安装Jupyer并配置远程访问

服务器系统:Debian 12.x;IP地址:10.100.2.138 客户端:Windows 10;IP地址:10.100.2.38 利用ssh登录服务器: 1.安装python3 #apt install python3 2.安装pip #apt install python3-pip … 3.安装virtualen…

鸿蒙Harmony应用开发—ArkTS声明式开发(容器组件:GridCol)

栅格子组件,必须作为栅格容器组件(GridRow)的子组件使用。 说明: 该组件从API Version 9开始支持。后续版本如有新增内容,则采用上角标单独标记该内容的起始版本。 子组件 可以包含单个子组件。 接口 GridCol(option?:{span?: number | …

使用 opencv 识别答题卡,生成填涂答案

一般答题卡设计时都在试卷4个角预留4个一样大小的黑块 仅能识别选择题判断题之类的填涂答题的题目,不能识别填空题应用题等其它主观题 使用 opencv 识别试卷图片中所有黑块,再根据黑块大小获取四个角的位置,根据四个黑块位置校正图像 将图…

怎么避免电脑数据被拷贝?电脑如何禁用USB功能?

在无纸化办公的今天,很多重要数据都存放在电脑中。为了避免数据泄露,需要采用安全的方式保护电脑数据。那么,该如何避免电脑数据被拷贝呢?下面我们就来了解一下。 方法一:物理隔绝 物理隔绝是一种原始但有效的USB禁用…

发布组件到npm

1.环境准备&#xff0c;需要装好node&#xff0c;注册号npm账号,这里不做详解 2.创建编写组件和方法的文件夹package 3.在文件夹中创建需要定义的组件&#xff0c;并且加上name属性 //组件 <template><div><button>按钮组件</button></div> &…

Hadoop,Hive 数据预处理CR

记录一次大材小用,我在将.csv电影数据集 电影json数据 导入MySQL时,出现了报错: 很明显,意味着.csv中的数据有非utf8编码的, 尝试使用file查看了下.csv文件的编码格式: 如果不确定原始编码,可以先用file命令尝试检测一下: file -i input.csv该命令会显示文件的MIME类型…

医学图像目标跟踪论文阅读笔记 2024.03.08~2024.03.14

“Inter-fractional portability of deep learning models for lung target tracking on cine imaging acquired in MRI-guided radiotherapy” 2024年 期刊 Physical and Engineering Sciences in Medicine 医学4区 没资源&#xff0c;只读了摘要&#xff0c;用的是U-net、a…

前端路由跳转bug

路由后面拼接了id的千万不能取相近的名字&#xff0c;浏览器分辩不出&#xff0c;只会匹配前面的路径 浏览器自动跳转到上面的路径页面&#xff0c;即使在菜单管理里面配置了正确的路由 跳转了无数次&#xff0c;页面始终不对&#xff0c;检查了路由配置&#xff0c;没有任何问…