Open CASCADE学习|几何数据结构

news2024/9/23 7:19:59

在几何引擎内一般把数据分成两类:几何信息与拓扑信息。二者可以完整地表达出实体模型,彼此相互独立、又互相关联。几何信息是指构成几何实体的各几何元素在欧式空间中的位置、大小、尺寸和形状信息。例如一条空间的直线,可以用两端点的位置矢量来表示,也可以用一个点和点在三维坐标系中的坐标分量来表示。

拓扑信息是指该物体的拓扑元素的个数、类型之间的相互关系,根据这些信息可以确定物体表面的邻接关系。拓扑信息的描述能够更加清晰的对构成形体的每个面、边、顶点的参数和属性进行读取和储存,可以有效的实现用点、边、面为基本几何运算及各种操作。对于两种形状、大小不一的物体模型,它们的拓扑关系是有可能是相等的。

1、几何模型

几何模型按照描述三维几何体所用几何元素的不同和储存内容特征可分为三类。

1.1线框模型

60年代CAD发展初期出现的系统为简单的线框式系统,仅能表达基本的几何模型,対于几何模型数据之间的拓扑关系不能完整的进行表达,使实体在表达中缺少表面信息,导致部分功能不能实现。以物体外形的轮廓、边及交线作为图形数据来表示物体。

线框模型有一定的局限性:由于其内部缺乏关于面的信息,导致无法表示表面含有曲面的实体模型,且不能定义定点与物体之间的关系。

1.2曲面模型

进入70年代,CAD的发展中出现很多有关自由曲面的难题,当时是利用多截面视图的方法来近似表示曲面形状,这导致缺少完整的三视图,就会出现设计思想与实际不符的情况。针对这种状况,法国达索公司利用以曲面模型为特征的自由曲面建模方法,开发了名为CATIA的三维曲面建模系统,自此曲面造型技术就此出现。在线框模型基础上再加进面的信息来表示模型。曲面模型扩大了线框模型的应用范围,增加了面边信息以及表面特征、边方向等信息。它能够表示含有曲面的模型,建模时将实体外表面分成若干个组成面,定义出每一块的基本面素,通过多个面素连接构成组成面,但是面信息不能够表示出物体宄竟处于表面的那一侧,因此也有很大的局限性。

1.3实体模型

能够完整地表示物体的所有形状信息,无歧义的确定一个点在模型的位置。以立方体、圆柱体、球体等基本体素为单元元素,运用交、并、差集合运算生成所需要的几何体。实体模型通常包括体素定义和描述、体素之间的集合运算。

2、OCC几何模型

OCC几何实体分五种类型,共同基类为Geom_Geometry。

(1)Geom_AxisPlacement

坐标系统的抽象类,子类包含:Geom_Axis1Placement(轴坐标系):原点为轴点,单位向量为轴的方向。Geom_Axis2Placement(右手坐标系):原点为坐标系原点,三个正交单位向量表示坐标系X、Y、Z的方向。

(2)Geom_Vector

几何向量的抽象类,描述向量在三维空间中的行为。子类包含Geom_Direction(向量方向)和Geom_VectorWithMagnitude(向量大小),分别定义向量的大小与方向。

(3)Geom_Point

表示几何点,子类包含:Geom_CartesianPoint(笛卡尔点)。

(4)Geom_Curve

几何曲线的抽象类,包含处理所有子类曲线的参数化方程的方法,以及获取有关曲线的信息。子类包含:Geom_Line(直线)、Geom_OffsetCurve(偏置曲线)、ShapeExtend_ComplexCurve(拼接曲线)、Geom_Conic(圆锥曲线)、Geom_BoundedCurve(有界曲线)、Geom_Circle(圆)、Geom_Ellipse(椭圆)、Geom_Hyperbola

(双曲线)、Geom_Parabola(拋物线)。

(5)Geom_Surface

几何曲面的抽象类,子类包含:Geom_OffsetSurface(偏置曲面)、ShapeExtend_CompositeSurface(复合曲面)、Geom_SweptSurface

(扫描曲面)、Geom_ElementarySurface(基本曲面)、Geom_BoundedSurface(有界曲面)。

3、OCC拓扑信息

OCC中设置三维拓扑的抽象基类为TopoDS_Shape,并包含了8个拓扑结构。二维拓扑抽象基类TopoDS_Shape,包含8个二维拓扑结构。三维拓扑子类分别是:

(1)TopoDS_Compound描述拓扑实体组,为拓扑级别最高级。

(2)TopoDS_CompSolid描述一种复合实体,参考底层复合实体的位置和方向,并给出局部坐标系位置。

(3)TopoDS_Solid描述一个实心的体,参考基础实体的位置和方向,并给出局部坐标系位置。

(4)TopoDS_Shell描述壳。

(5)TopoDS_Face描述面。

(6)TopoDS_Wire描述线。

(7)TopoDS_Edge描述边

(8)TopoDS_Vertex描述顶点。

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

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

相关文章

019—pandas 计算实验仪器正常运行周期时长

需求: 对指定两个状态作为一个周期,并计算出周期内的差值,写到周期结束所在的行上。pandas 非常适合实现此类有着较为复杂逻辑的问题。 思路: 这个问题的难点是状态的不规律性,如何才能准确找出所有 T 和 C 的周期。…

python 打包 apk

转换之前python代码需要使用指定的框架才能转换,列如:kivy from kivy.app import App from kivy.uix.boxlayout import BoxLayout from kivy.uix.button import Buttonimport time import pyautogui import threadingstatus False# 这是一个将被线程执…

本博客工程源码总目录----方便你快速找到自己喜欢的项目

目录 1、前言2、本人项目总分类3、FPGA图像处理类项目-->快速查找3.1、图像采集-->MIPI视频类3.2、图像采集-->SDI视频类3.3、图像采集-->PAL视频类3.4、图像采集-->Cmeralink视频类3.5、图像转换-->LVDS视频转换3.6、图像缩放(纯Verilog版本HLS版…

QEMU开发入门

1. 简介 QEMU(Quick EMUlator)是一个开源的虚拟化软件,它能够模拟多种硬件平台,并在这些平台上运行各种操作系统。QEMU可以在不同的主机架构之间进行虚拟化,例如x86、ARM、PowerPC、Risc-V等。QEMU是一个功能强大且灵…

【竞技宝jjb.lol】LOL:wayward奎桑提主宰团战 WE2-1力克IG

北京时间2024年2月24日,英雄联盟LPL2024春季常规赛继续进行,昨日共进行三场比赛,第二场比赛由IG对阵WE。本场比赛双方前两局战至1-1平,决胜局WE中期抓住IG失误后拿下大龙奠定胜局,最终WE2-1力克IG。以下是本场比赛的详…

二次元风格个人主页HTML源码

源码介绍 直接上传服务器压缩包解压就完事了,修改index.html内代码即可,注释写的很全,替换图片在文件夹img,只有前端,没有后台,大佬如果需要,可以自行添加后台。本源码非常适合个人工作室主页。…

利用psutil库检查脚本是否在运行

摘要 如果要判断某一脚本是否在运行,可以通过psutil库获取所有进程的cmdline,并判断指定的文件名是否在cmdline中。 目录 1.psutil库简介 2.检查代码及说明 2.1检查思路 2.2异常捕获 2.3执行方法 1.psutil库简介 psutil 是一个跨平台(…

Optimization for Deep Learning

Notations: : model parameters at time step or : gradient at used to compute : momentum accumulated from time step to time step , which is used to cpmpute Optimization What is Optimization about? 找到一组参数,使得 最小,或者说是…

内容安全补充

第十一天 密码学 近现代加密算法 古典加密技术 --- 算法保密原则 近现代加密技术 --- 算法公开,密钥保密 对称加密算法,非对称加密算法 对称加密 --- 加密和解密的过程中使用的是同一把密钥。 所以,对称加密所使用的算法一定是一种双向…

概率基础——指数分布

概率基础——指数分布 介绍 指数分布是一种连续概率分布,描述了独立随机事件之间的时间间隔。它常被用来模拟随机事件的等待时间,例如到达下一位顾客的等待时间、设备故障的间隔时间等。指数分布具有无记忆性的特点,即在给定时间内没有发生…

*MYSQL--索引--内部原理

MYSQL的索引根据功能,主要有三大类型: 1.HASH索引 2.二叉树 3.BTREE索引 一:HASH索引 1.内部原理: 在设置了某列为索引列之后,并且开始或者将要在相应索引列创建数据的时候,系统通过某种算法 F(X) 自动计算出来一个十六进制的哈希值,这个哈希值能够对应相应的字段值 所以…

单片机51 输入和输出

一、IO口基本概念介绍 单片机的IO口(Input/Output口)是连接单片机与外部电路或设备的接口。单片机的IO口可以分为输入口和输出口两种,用于控制和监测外部设备的状态。 1. 输入口:单片机的输入口用于接收外部电路或设备的信号。输…

C++的string容器->基本概念、构造函数、赋值操作、字符串拼接、查找和替换、字符串比较、字符存取、插入和删除、子串

#include<iostream> using namespace std; #include <string> //string的构造函数 /* -string(); //创建一个空的字符串 例如: string str; -string(const char* s); //使用字符串s初始化 -string(const string& str); //使…

Linux安装jdktomcatMySQl一战完成

一、jdk安装具体步骤 1、查询是否有jdk java -version 2、进入opt目录 cd /opt/ 连接服务器工具 进入opt目录&#xff0c;把压缩文件上传 查询是否查询成功 进入解压到的目录 cd /usr/local/创建新文件夹 mkdir java 再回到opt目录进行解压 cd /opt 解压到刚刚创建的文…

springboot邮箱注册

1.准备工作 操作之前准备两个邮箱 我准备了网易邮箱和QQ邮箱&#xff0c;网易邮箱用来发送验证码&#xff0c;QQ邮箱用来做注册&#xff08;希望大家和我一样&#xff0c;不然可能会出错 &#xff09; 发送验证码的邮箱需要开启一些设置&#xff0c;否则不…

CSS 字体和文本详解

CSS 字体和文本详解 字体设置 如果字体名有空格&#xff0c;使用引号包裹。建议使用常见字体&#xff0c; 否则兼容性不好。字体名称可以用英文&#xff0c;也可以用中文&#xff0c; 推荐使用英文。 示例代码: 运行结果: 字体大小 不同的浏览器默认字号不一样&#xff0c;…

多线程相关(4)

线程安全-下 使用层面锁优化减少锁的时间&#xff1a;减少锁的粒度&#xff1a;锁粗化&#xff1a;使用读写锁&#xff1a;使用CAS&#xff1a; 系统层面锁优化自适应自旋锁锁消除锁升级偏向锁轻量级锁重量级锁 ThreadLocal原理ThreadLocal简介原理ThreadLocal内存泄漏 HashMap…

15-36V降压充电光伏MPPT充电方案

1.MPPT原理--简介 MPPT&#xff0c;全称为Maximum Power Point Tracking&#xff0c;即最大功点跟踪&#xff0c;它是一种通过调节电气模块的工作状态&#xff0c;使光伏板能够输出更多电能的电气系统能够将太阳能电池板发出的直流电有效地贮存在蓄电池中&#xff0c;可有效地…

【Langchain多Agent实践】一个有推销功能的旅游聊天机器人

【LangchainStreamlit】旅游聊天机器人_langchain streamlit-CSDN博客 视频讲解地址&#xff1a;【Langchain Agent】带推销功能的旅游聊天机器人_哔哩哔哩_bilibili 体验地址&#xff1a; http://101.33.225.241:8503/ github地址&#xff1a;GitHub - jerry1900/langcha…

从软硬件以及常见框架思考高并发设计

目录 文章简介 扩展方式 横向扩展 纵向扩展 站在软件的层面上看 站在硬件的层面上看 站在经典的单机服务框架上看 性能提升的思考方向 可用性提升的思考方向 扩展性提升的思考方向 文章简介 先从整体&#xff0c;体系认识&#xff0c;理解高并发的策略&#xff0c;方…