Open CASCADE学习|几何数据结构

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

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

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.mfbz.cn/a/408552.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【Java程序设计】【C00262】基于Springboot的会员制医疗预约服务管理系统(有论文)

基于Springboot的会员制医疗预约服务管理系统(有论文) 项目简介项目获取开发环境项目技术运行截图 项目简介 这是一个基于Springboot的会员制医疗预约服务管理信息系统,本系统分为三种角色:管理员、医生和会员; 在系统…

在Linux操作系统的ECS实例上安装Hive

目录 1. 完成hadoop安装配置2. 安装配置MySql安装配置 3. 安装Hive4. 配置元数据到MySQL5. hiveserver2服务配置文件测试 1. 完成hadoop安装配置 在Linux操作系统的ECS实例上安装hadoop 以上已安装并配置完jdk、hadoop也搭建了伪分布集群 2. 安装配置MySql 安装 下下一步…

c++之ini配置文件的详细解析

文章目录 ini文件概要代码实例分析小结 ini文件概要 ini文件是一种系统配置文件,它有特定的格式组成。通常做法,我们读取ini文件并按照ini格式进行解析即可。在c语言中,提供了模板类的功能,所以我们可以提供一个更通用的模板类来解…

【机器学习基础】一元线性回归(适合初学者的保姆级文章)

🚀个人主页:为梦而生~ 关注我一起学习吧! 💡专栏:机器学习 欢迎订阅!后面的内容会越来越有意思~ 💡往期推荐: 【机器学习基础】机器学习入门(1) 【机器学习基…

CSS 面试题汇总

CSS 面试题汇总 1. 介绍下 BFC 及其应 参考答案: 参考答案: 所谓 BFC,指的是一个独立的布局环境,BFC 内部的元素布局与外部互不影响。 触发 BFC 的方式有很多,常见的有: 设置浮动overflow 设置为 auto、scr…

【LNMP】云导航项目部署及环境搭建(复杂)

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、项目介绍1.1项目环境架构LNMP1.2项目代码说明 二、项目环境搭建2.1 Nginx安装2.2 php安装2.3 nginx配置和php配置2.3.1 修改nginx文件2.3.2 修改vim /etc/p…

精品基于SpringBoot的体育馆场地预约赛事管理系统的设计与实现-选座

《[含文档PPT源码等]精品基于SpringBoot的体育馆管理系统的设计与实现[包运行成功]》该项目含有源码、文档、PPT、配套开发软件、软件安装教程、项目发布教程、包运行成功! 软件开发环境及开发工具: Java——涉及技术: 前端使用技术&#…

【尚硅谷】MybatisPlus 学习笔记(下)

目录 六、插件 6.1、分页插件 6.1.1、添加配置类 6.1.2、测试 6.2、xml自定义分页 6.2.1、UserMapper中定义接口方法 6.2.2、UserMapper.xml中编写SQL 6.2.3、测试 6.3、乐观锁 6.3.1、场景 6.3.2、乐观锁与悲观锁 6.3.3、模拟修改冲突 数据库中增加商品表 添加数…

LeetCode 第一题: 两数之和

文章目录 第一题: 两数之和题目描述示例 解题思路Go语言实现 - 一遍哈希表法C实现算法分析 排序和双指针法Go语言实现 - 排序和双指针法C算法分析 暴力法Go语言实现 - 暴力法C算法分析 二分搜索法Go语言实现 - 二分搜索法C算法分析 第一题: 两数之和 ‍ 题目描述 给定一个整…

规则持久化(Sentinel)

规则持久化 基于Nacos配置中心实现推送 引入依赖 <dependency><groupId>com.alibaba.csp</groupId><artifactId>sentinel-datasource-nacos</artifactId> </dependency> 流控配置文件 [{"resource":"/order/flow",…

vue+nodejs+uniapp婚纱定制婚庆摄影系统 微信小程序 springboot+python

目前移动互联网大行其道&#xff0c;人人都手中拿着智能机&#xff0c;手机手机&#xff0c;手不离机&#xff0c;如果开发一个用在手机上的程序软件&#xff0c;那是多么的符合潮流&#xff0c;符合管理者和客户的理想。本次就是开发婚庆摄影小程序&#xff0c;有管理员&#…

k8s学习笔记-基础概念

&#xff08;作者&#xff1a;陈玓玏&#xff09; deployment特别的地方在于replica和selector&#xff0c;docker根据镜像起容器&#xff0c;pod控制容器&#xff0c;job、cronjob、deployment控制pod&#xff0c;job做离线任务&#xff0c;pod大多一次性的&#xff0c;cronj…

【蓝桥杯】拓扑排序

一.拓扑排序 1.定义&#xff1a; 设G&#xff08;V&#xff0c;E&#xff09;是一个具有n个顶点的有向图&#xff0c;V中的顶点序列称为一个拓扑序列&#xff0c;当且仅当满足下列条件&#xff1a;若从顶点到有一条路径&#xff0c;则在顶点序列中顶点必在之前。 2.基本思想…

Vue+SpringBoot打造音乐偏好度推荐系统

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、系统设计2.1 功能模块设计2.1.1 音乐档案模块2.1.2 我的喜好模块2.1.3 每日推荐模块2.1.4 通知公告模块 2.2 用例图设计2.3 实体类设计2.4 数据库设计 三、系统展示3.1 登录注册3.2 音乐档案模块3.3 音乐每日推荐模块3.4 通知公告模…

【安装】CentOS 7 使用 OUI 图形界面安装 Oracle Database 19.3

需安装使用 X Server 协议的软件&#xff08;如 Xorg&#xff09;和如桌面图形软件&#xff08;Gnome 或 KDE&#xff09;。 使用 root 用户执行&#xff1a; # curl -o oracle-database-preinstall-19c-1.0-1.el7.x86_64.rpm https://yum.oracle.com/repo/OracleLinux/OL7/l…

istio系列教程

istio学习记录——安装https://suxueit.com/article_detail/otVbfI0BWZdDRfKqvP3Gistio学习记录——体验bookinfo及可视化观测https://suxueit.com/article_detail/o9VdfI0BWZdDRfKqlv0r istio学习记录——kiali介绍https://suxueit.com/article_detail/pNVbfY0BWZdDRfKqX_0K …

在Node.js中如何实现用户身份验证和授权

当涉及到构建安全的应用程序时&#xff0c;用户身份验证和授权是至关重要的一环。在Node.js中&#xff0c;我们可以利用一些流行的库和技术来实现这些功能&#xff0c;确保我们的应用程序具有所需的安全性。本篇博客将介绍如何在Node.js中实现用户身份验证和授权。 用户身份验…

“激发无限创意:在线图片制作,点亮你的视觉灵感!“

在数字时代&#xff0c;图片已经成为我们表达创意、分享故事和展示个性的重要方式。然而&#xff0c;你是否曾因为缺乏专业的设计技能或繁琐的制作流程而感到困扰&#xff1f;现在&#xff0c;有了在线图片制作平台&#xff0c;释放你的创意灵感变得前所未有的简单和方便&#…

福特锐界2021plus 汽车保养手册

福特锐界2021plus汽车保养手册两页&#xff0c;零部件保养要求&#xff0c;电子版放这里方便查询&#xff1a;