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.mzph.cn/news/702060.shtml

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

相关文章

五种多目标优化算法(MOCS、MOFA、NSWOA、MOAHA、MOPSO)性能对比(提供MATLAB代码)

一、5种多目标优化算法简介 多目标优化算法是用于解决具有多个目标函数的优化问题的一类算法。其求解流程通常包括以下几个步骤: 1. 定义问题:首先需要明确问题的目标函数和约束条件。多目标优化问题通常涉及多个目标函数,这些目标函数可能…

【人脸朝向识别与分类预测】基于BP神经网络

课题名称:基于BP神经网络的人脸朝向识别分类 版本日期:2024-02-20 运行方式:直接运行BP0503.m文件 代码获取方式:私信博主或 QQ:491052175 模型描述: 采集到一组人脸朝向不同角度时的图像,图像来自不同…

17.材质和外观

1.图形学中的材质 在图形学中,材质(Material)是用来描述物体外观和表面特性的属性集合。它包含了控制光的反射、折射、吸收以及其他光学效果的信息,从而决定了物体在渲染过程中的外观。 渲染方程中那一项和材质有关? …

c#高级-正则表达式

正则表达式是由普通字符和元字符(特殊符号)组成的文字形式 应用场景 1.用于验证输入的邮箱是否合法。 2.用于验证输入的电话号码是否合法。 3.用于验证输入的身份证号码是否合法。等等 正则表达式常用的限定符总结: 几种常用的正则简写表达式…

[VNCTF2024]-Web:CheckIn解析

查看网页 一款很经典的游戏,而且是用js写的 在调试器里面我们可以看见,如果游戏通关的话,它会进行一系列操作,包括使用console.log(_0x3d9d[0]);输出_0x3d9d[0]到控制台,那我们就直接在点击在控制台求出它的值

C++ //练习 8.9 使用你为8.1.2节(第281页)第一个练习所编写的函数打印一个istringstream对象的内容。

C Primer(第5版) 练习 8.9 练习 8.9 使用你为8.1.2节(第281页)第一个练习所编写的函数打印一个istringstream对象的内容。 环境:Linux Ubuntu(云服务器) 工具:vim 代码块 /*****…

独立版表情包小程序完整版源码前后端源码,附带系统搭建教程

搭建要求: 1.系统要求Nginx 1.18.0PHP-7.2mysql5.6,开启 ssl,php需要安装 sg11 扩展 2.设置伪静态 location / { index index.php index.html index.htm; if (!-e $request_filename) { rewrite ^/(.*)$ /index.php?s$1; } } location /a…

容器镜像详解

1. 镜像组成 一个标准的OCI容器镜像由index, manifest, config, image layers这几个部分组成。 以docker镜像为例,下载的镜像文件保存在/var/lib/docker/目录下面 image/overlay2子目录下面保存着镜像相关的一些元数据 在下面的介绍主要以nginx:latest镜像为例子…

接口自动化测试用例如何设计

说到自动化测试,或者说接口自动化测试,多数人的第一反应是该用什么工具,比如:Python Requests、Java HttpClient、Apifox、MeterSphere、自研的自动化平台等。大家似乎更关注的是哪个工具更优秀,甚至出现“ 做平台的 &…

流计算之Flink

文章目录 概要有界无界流集群JobManagerTaskManagersTasks 和算子链Task Slots 和资源 小结 概要 Apache Flink 是一个框架和分布式处理引擎,用于在无边界和有边界数据流上进行有状态的计算。Flink 能在所有常见集群环境中运行,并能以内存速度和任意规模…

【微服务】mybatis typehandler使用详解

目录 一、前言 二、TypeHandler简介 2.1 什么是TypeHandler 2.1.1 TypeHandler特点 2.2 TypeHandler原理 2.3 mybatis自带的TypeHandler 三、环境准备 3.1 准备一张数据表 3.2 搭建一个springboot工程 3.2.1 基础依赖如下 3.2.2 核心配置文件 3.2.3 测试接口 四、T…

JAVA工程师面试专题-《Mysql》篇

目录 一、基础 1、mysql可以使用多少列创建索引? 2、mysql常用的存储引擎有哪些 3、MySQL 存储引擎,两者区别 4、mysql默认的隔离级别 5、数据库三范式 6、drop、delete 与 truncate 区别? 7、IN与EXISTS的区别 二、索引 1、索引及索…

接口测试实战--自动化测试流程

一、项目前期准备 常见项目软件架构: springMvc:tomcat里运行war包(在webapps目录下) springboot:java -jar xx.jar -xms(**) 运行参数 springCloud:k8s部署,使用kubectl create -f xx.yaml 接口自动化测试介入需越早越好,只要api定义好就可以编写自动化脚本; 某个…

五种多目标优化算法(MOBA、NSWOA、MOJS、MOAHA、MOPSO)性能对比(提供MATLAB代码)

一、5种多目标优化算法简介 多目标优化算法是用于解决具有多个目标函数的优化问题的一类算法。其求解流程通常包括以下几个步骤: 1. 定义问题:首先需要明确问题的目标函数和约束条件。多目标优化问题通常涉及多个目标函数,这些目标函数可能存在冲突,需要在不同目标之间进…

1_怎么看原理图之GPIO和门电路笔记

一、GPIO类 如下图:芯片输出高电平/3.3V,LED亮;当芯片输出低电平,则LED暗 如下图:输入引脚,当开关闭合,则输入为低电平/0V,当开关打开,则输入为高电平/3.3V 现在的引脚都…

Stable Diffusion 3 发布及其重大改进

1. 引言 就在 OpenAI 发布可以生成令人瞠目的视频的 Sora 和谷歌披露支持多达 150 万个Token上下文的 Gemini 1.5 的几天后,Stability AI 最近展示了 Stable Diffusion 3 的预览版。 闲话少说,我们快来看看吧! 2. 什么是Stable Diffusion…

微信小程序 uniapp+vue餐厅美食就餐推荐系统

本论文根据系统的开发流程以及一般论文的结构分为三个部分,第一个部分为摘要、外文翻译、目录;第二个部分为正文;第三个部分为致谢和参考文献。其中正文部分包括: (1)绪论,对课题背景、意义、目…

uvloop,一个强大的 Python 异步IO编程库!

前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站零基础入门的AI学习网站~。 目录 ​编辑 前言 什么是uvloop库? 安装uvloop库 使用uvloop库 uvloop库的功能特性 1. 更…

Spring ReflectionUtils 反射工具介绍和使用

一、ReflectionUtils 在 Java 中,反射(Reflection)是一种强大的机制,允许程序在运行时动态地检查类、获取类的信息、调用类的方法、访问或修改类的属性等。Java 的反射机制提供了一组类和接口,位于 java.lang.reflect…

【二分查找】【浮点数的二分查找】【二分答案查找】

文章目录 前言一、二分查找(Binary Search)二、浮点数的二分查找三、二分答案总结 前言 今天记录一下基础算法之二分查找 一、二分查找(Binary Search) 二分查找(Binary Search)是一种在有序数组中查找目…