OCC教学:拓扑

news2024/11/26 14:58:59

拓扑:1.介绍

几何限制

OCCT 曲面支持矩形修剪。布尔运算后可能会出现非矩形域。
![[Pasted image 20231115140418.png]]

如何存储剪切操作的结果?

拓扑的目的

一般来说,拓扑是描述对象局限性的一种手段。
![[Pasted image 20231115140611.png]]

OCC拓扑被用于用于描述:

  • 物体的边界;
  • 对象之间的连接(通过公共边界)。
    拓扑实体称为形状(shapes)。
拓扑的定义

拓扑形状是根据这两个概念定义的:

  • 抽象拓扑(TopoDS):通过描述有界和有界对象之间的关系来定义数据结构。示例:边由其边界(即顶点)描述。
  • 边界表示(B-Rep):通过关联拓扑和几何信息来完成对象的定义。例子:一条边位于曲线上并以点为界。
    边界表示和算法类被分组在不同的包中。
    ![[Pasted image 20231115141321.png]]
为什么使用边界表示(B-rep)

B-Rep 有多种替代方案:

  • 构造立体几何(CSG), CSG 不允许对任意数字进行建模。
  • 表面模型,表面模型不适合下游工程作业。
  • 线框模型,多个实体可以对应于相同线框模型(结果不唯一)。
  • 网格模型,网格不支持弯曲几何体。
    B-Rep 有一些缺点。它是脆弱的、冗长的、复杂的。 B-Rep模型使用顶点、边和面作为几何载体,但也具有特殊的拓扑类型。模型的复杂性导致脆弱性。
    ![[Pasted image 20231115141954.png]]

拓扑:2.抽象拓扑

拓扑形状(shapes)

OCCT定义了以下类型的拓扑形状:

  • Vertex 顶点:一个点;
  • Edge 边:由顶点限制的曲线的一部分;
  • Wire 线框:一组边(通过它们的顶点连接);
  • Face 面:由线限制的表面的一部分;
  • Shell 壳:一组面(通过边连接);
  • Solid 实体:受壳限制的空间的一部分;
  • Compsolid 复合实体:一组通过面连接的实体;
  • Compound 复合:任意拓扑形状的群。
    ![[Pasted image 20231115142507.png]]
拓扑结构图

下图显示了复杂形状(图中的实体)的子形状之间关系的示例:
![[Pasted image 20231115142801.png]]

形状(shapes)的连接性

如果两个形状(shapes)共享一些边界子形状,则它们是连接的。
示例:让我们考虑两条边——e1 和 e2。它们中的每一个都受到其边界的限制,边界是顶点(v1f 和 v1l是e1的边界)(v2f 和 v2l是e2的边界)。当这两条边共享一个公共顶点 v3 时,它们是连接的。
![[Pasted image 20231115143423.png]]

形状(shape)的层次结构

TopoDS_Shape 是所有拓扑形状类的基类。
在这里插入图片描述

TopoDS_Vertex 保存有关点(零维对象)的信息;
TopoDS_Edge 保存有关曲线(一维对象)的信息;
TopoDS_Wire 是边的集合;
TopoDS_Face 保存有关表面(二维对象)的信息;
TopoDS_Shell 是面的集合;
TopoDS_Solid、TopoDS_Compsolid 保存有关实体的信息;
TopoDS_Compound 表示一个形状,它是形状的集合。

形状(shape)结构

TopoDS_Shape 类通过以下方式定义形状:

  • TopoDS_TShape 句柄(handle)(TopoDS package);
  • 局部坐标系(TopLoc package);
  • 方向(TopAbs package)。
    ![[Pasted image 20231115144441.png]]

TopoDS_TShape:一个句柄类,描述其对象在它默认坐标系。这个类从来没有直接使用过,通常使用 TopoDS_Shape。
TopLoc_Location:定义局部坐标系,将形状放置在与其定义不同的位置。
示例:所有这些盒子共享相同的 TShape,但位置不同。
![[Pasted image 20231115144358.png]]

TopAbs_Orientation:描述形状如何根据区域(内部和外部)界定几何形状。
![[Pasted image 20231115145008.png]]

考虑形状(shape)的上下文关系时,形状的方向和位置参数也被假定影响其子形状。当将一个形状发展为子形状时,子形状的方向和位置将与主形状的方向和位置相结合。这确保了在引用子形状的每个形状的上下文中对子形状的参数进行一致的解释。例如,当在这些面的上下文中搜索时,两个相连的面共享的边将具有相反的方向。

形状(shape)操作

TopoDS_Shape 类及其子类提供了各种有用的方法,例如:
访问 TShape:

  • IsNull() 检查 TShape 是否为 null;
  • Nullify() - 使 TShape 智能指针无效。
    访问location:
  • Location() - 返回现有位置;
  • Move () - 对实际形状应用变换;
  • Moved() - 返回应用变换的新形状。
    ShapeType() - 返回 TopoDS_Shape 的类型。
    形状比较:
    IsPartner()——相同的 TShape;
    IsSame()——相同的 TShape 和位置;
    IsEqual()——相同的 TShape、位置和方向。
    ![[Pasted image 20231115145707.png]]
向下转型(基类->子类)

TopoDS_Shape 对象通过值进行操作。这就是为什么要实现特殊方法来提供向下转换功能的原因:

  • TopoDS::Vertex() 返回一个 TopoDS_Vertex
  • TopoDS::Edge() 返回一个 TopoDS_Edge
  • TopoDS::Wire() 返回一个 TopoDS_Wire
  • TopoDS::Face() 返回一个 TopoDS_Face
  • TopoDS::Shell() 返回一个 TopoDS_Shell
  • TopoDS::Solid() 返回 TopoDS_Solid
  • TopoDS::CompSolid() 返回TopoDS_CompSolid
  • TopoDS::Compound() 返回一个 TopoDS_Compound
    注意:当进行不适当的转换时会引发异常。
    示例:第一个代码块是正确的,但第二个代码块被编译器报错。
    ![[Pasted image 20231115150353.png]]
形状(shape)的集合

TopTools 包提供:

  • 用于计算具有或不具有方向的形状的哈希码的类。
  • 形状集合的实例化。
    ![[Pasted image 20231115150728.png]]
搜索工具

搜索拓扑形状意味着找到它的子形状,可能符合特定的标准。

  • TopoDS_Iterator 类搜索给定形状的第一级子形状(来自其 TShape 中的列表)。

  • TopExp_Explorer 类搜索给定形状中的所有子形状,并可以选择实体类型(例如,仅面)。![[Pasted image 20231115151146.png]]

  • TopExp::MapShapes() 方法搜索子形状并将它们放入map中(从而检测相同的元素)。![[Pasted image 20231115151226.png]]

  • TopExp::MapShapesAndAncestors() 方法返回引用另一个实体的所有实体。![[Pasted image 20231115151420.png]]

在OCCT中,不存在从子形状到其祖先形状的反向指针。相反,TopExp::MapShapesAndAncestors() 可用于恢复此信息。例如,如果您想查找包含给定顶点或边的所有面,您可以使用此方法。

拓扑:3.边界表示(B-rep)

边界表示

边界表示(B-Rep)在三维描述模型对象。
在 B-Rep 建模中,实体由其边界表示。
![[Pasted image 20231115151959.png]]

B-Rep 将几何融入拓扑:

  • 几何形状:面位于曲面上,边位于曲线上,顶点位于点上。
  • 拓扑:形状的连通性。
    因此模型对象的描述就完成了。
    B-Rep 描述基于:
    TopoDS package——描述对象的拓扑结构。
    Geom 和 Geom2d package——描述这些物体的几何形状。
B-Rep 实体

定义 BRep_TVertex、BRep_TEdge 和 BRep_TFace 是为了向拓扑模型添加几何信息。
BRep_TVertex、BRep_TEdge 和 BRep_TFace 继承 TopoDS_TShape。
根据拓扑实体的不同,几何信息的存储方式也不同。
存储几何信息的实体允许描述:

  • 边:受顶点限制的曲线;
  • 面:由边限制的曲面;
  • 实体:受面限制的空间。
BRep_TVertex 中的几何图形

BRep_TVertex 几何存储为:3D 点 (gp_Pnt) ——对于所有顶点。
点表示的列表可以是:

  • 曲线上的点(Geom_Curve,参数)——如果顶点界定边。
  • 曲面上曲线上的点(Geom_Surface、Geom2d_Curve、参数)——如果顶点界定曲面上的边。
  • 曲面上的一点(Geom_Surface, Uparameter, Vparameter)——如果顶点界定面。
    ![[Pasted image 20231115153221.png]]
BRep_TEdge 中的几何图形

BRep_TEdge 几何图形存储为曲线列表,可以是:

  • 一条 3D 曲线和曲线上的两个参数(Geom_Curve、FirstParameter、LastParameter)。
  • 曲面上的一条曲线,曲线上的两个参数和曲面上的两对参数(Geom2d_Curve、FirstParameter、LastParameter、Geom_Surface、FirstUVCoord、LastUVCoord)。
    SameParameter 属性指示是否对边缘的不同表示进行参数化同步,即 3D 曲线上具有相同参数值的点与每条 2D 曲线重合(在边的公差范围内)
    ![[Pasted image 20231115153734.png]]
BRep_TFace 中的几何图形

BRep_TFace 几何图形存储为 Geom_Surface
![[Pasted image 20231115153915.png]]

B-Rep 的精度

一些几何表示可以附加到拓扑(B-Rep)对象。例如,一个顶点可以表示为:

  • 3D点;
  • 曲线上的参数;
  • 曲面上的一对参数。
    这些表示相似但很少相同。对于建模算法,有必要准确地知道与该近似值相关
    的精度。该精度的数值与每个 B-Rep 形状相关联,称为公差。它定义了对象的
    所有几何表示所在的区域。
    在 BRep_TVertex 中,精度定义了围绕3D 点的球体的半径:![[Pasted image 20231115162809.png]]

在 BRep_TEdge 中,精度定义了 3D 曲线周围管道的半径:![[Pasted image 20231115162914.png]]

在 BRep_TFace 中,精度定义了曲面面上方和下方的厚度:![[Pasted image 20231115163008.png]]

由于公差与几何载体相关,因此它是由 B-Rep 中创建或修改几何的算法定义的。
OCCT要求:公差(顶点) >= 公差(边) >= 公差(面)
![[Pasted image 20231115163106.png]]在这里插入图片描述

Package: BRepAdaptor

OCCT 使适配器用于通过适配器模式在几何算法中使用拓扑实体。边界表示作为修剪的曲线和曲面工作,从而消除了手动修剪的必要性。可以使用以下适配器:

  • BRepAdapter_Curve——接受边曲线适配器;
  • BRepAdapter_Curve2d——接受边和面的曲线适配器;
  • BRepAdapter_CompCurve——接受线框的曲线适配器;
  • BRepAdaptor_Surface——接受面的曲面适配器。
    注意:可提供手柄版本的适配器。例如,BRepAdaptor_HSurface类是曲面适配器的手柄版本。
B-Rep 特点

3D 空间(3D 拓扑)和参数空间(UV 拓扑)中同一面的表示通常拓扑相似。
![[Pasted image 20231115164601.png]]
有时 3D 拓扑和 UV 拓扑是不同的。这是情况出现在接缝边和退化的边。

  • 接缝边是定义封闭面上(通常构建在周期性曲面上)上的接缝的边。在这种情况下,一个 3D 拓扑对应于多个UV 拓扑。
  • 当一条或多条 UV 2d 曲线对应于单个 3D 顶点时,称边已退化。此类边没有 3d 曲线表示,并且两次包含相同的顶点(方向相反)。
    在这里插入图片描述
形状(shapes)构造

OCCT提供了多个软件包,为建模算法提供高级 API。这些 API 既简单又强大:

  • 简单,因为只需要调用一次函数即可创建对象![[Pasted image 20231115164822.png]]

  • 功能强大,因为它包括错误处理和对算法提供的额外信息的访问![[Pasted image 20231115164934.png]]

Package: BRepBuilderAPI

该包包含以下类:

  • 从几何实体直接构造拓扑对象或从形状集合组合拓扑
    • BRepBuilderAPI_MakeVertex:从点构建顶点;
    • BRepBuilderAPI_MakeEdge、MakeEdge2d:从曲线构建边;
    • BRepBuilderAPI_MakePolygon:从点构建线框;
    • BRepBuilderAPI_MakeWire:从边构建线框;
    • BRepBuilderAPI_MakeFace:从曲面构建面;
    • BRepBuilderAPI_MakeShell:从曲面面构建外壳(分割为 C2 Patches);
    • BRepBuilderAPI_MakeSolid:从壳构建实体。
  • 修改对象:
    • RepBuilderAPI_Transform:对形状应用变换;
    • BRepBuilderAPI_Copy:进行形状的深层复制;
    • BRepBuilderAPI_Sewing:通过合并边界边从一组面构建外壳。
  • 创建基本对象:
    • BRepPrimAPI_MakeBox
    • BRepPrimAPI_MakeWedge
    • BRepPrimAPI_MakeSphere
    • BRepPrimAPI_MakeCone
    • BRepPrimAPI_MakeCylinder
    • BRepPrimAPI_MakeTorus
    • BRepPrimAPI_MakeHalfSpace
  • 创建扫掠对象:
    • BRepPrimAPI_MakePrism
    • BrepPrimAPI_MakeRevol
      ![[Pasted image 20231115170216.png]]
位置修改

OCCT 中提供的数据共享概念允许重复使用拓扑信息和实例模型通过不同的位置。形状内的位置是一组连续的变换,它们是作为单个转换进行操作。
注意:空位置和现有的相同位置被视为不同。IsSame() 检查将返回 false。
位置方法如下:

  • Location
  • Move
  • Moved
    ![[Pasted image 20231115170730.png]]
方向:边内的顶点

OCCT方向概念旨在通过内部和外部区域的信息完成边界表示。该信息是一组影响形状正确性的规则。
方向本身对于顶点没有任何意义。仅当顶点限制某些边时,顶点方向才有
意义。边是使用一对顶点构造的(在周期曲线的情况下至少一个顶点使用两
次);按照约定,第一个顶点具有 TopAbs_FORWARD 方向,第二个顶点具有 TopAbs_REVERSED 方向。
注意:BRepBuilderAPI_MakeVertex 构造一个具有 TopAbs_FORWARD 方向的顶点。
![[Pasted image 20231115171023.png]]

方向:线框内的边

面是由边界定的一部分曲面。边被组织成线框,以便能够单独跟踪每个环(外部或内部)。
当相框是自由时,没有任何限制;可以无限制地将边添加到线框上。
当线框属于面时,右手法则起作用;线框中的每个边应根据曲线上参数增加的方向定向,使内部位于左侧。
![[Pasted image 20231115171720.png]]

可以重建曲线,但更好的做法是复原基础曲线。第二选项是在OCCT中重建。

方向:实体中的面

实体是模型空间的一部分,由组织成壳的面界定。实体中的法线应该指向实体外部。微分几何指出可以通过曲面上的点计算曲面法向,使用以下公式(“x”代表叉积): N ( u 0 , v 0 ) = s u ′ ( u 0 , v 0 ) × s v ′ ( u 0 , v 0 ) N(u_{0},v_{0})=s_{u}'(u_{0},v_{0})\times s_{v}'(u_{0},v_{0}) N(u0,v0)=su(u0,v0)×sv(u0,v0)
法向计算得到方向的符号,因此存在交换偏导数的替代公式(OCCT 使用上面提供的公式)。如何保证实体中正确的法线方向?
面方向在法线之前决定符号:

  • TopAbs_FORWARD——方向根据上述公式进行计算
  • TopAbs_REVERSED——法向被乘以-1.0
    注意:实体可以表示除由实体边界界定的部分空间之外的整个模型空间。法线
    在这种情况下将指向空间的有界部分内部。
    ![[Pasted image 20231115173318.png]]

拓扑:4.建模应用接口(API)

建模API:BRepAlgoAPI

OCCT 有两种布尔算法的实现。在内部,它们被称为“旧”和“新”算法。旧算法不再维护并标记为已过时。 OCCT 的“新”布尔算法可在 BRepAlgoAPI package中找到。可以使用以下算法:

  • 相减 Cut(BRepAlgoAPI_Cut);
  • 并集 Fuse(BRepAlgoAPI_Fuse)。
  • 相交 Common(BRepAlgoAPI_Common)。
  • 相交线 Section(BRepAlgoAPI_Section)。
  • 分离器 Splitter(BRepAlgoAPI_Splitter)。
    ![[Pasted image 20231116095712.png]]
建模API:BRepOffsetAPI

该软件包提供了额外的构建工具,例如:

  • BRepOffsetAPI_ThruSections——从一组轮廓放样(loft)构建壳体或实体;
  • BRepOffsetAPI_DraftAngle——使用给定的角度信息锥化一个形状的面集;
  • BRepOffsetAPI_MakeOffsetShape——在给定形状上构建偏移形状;
  • BRepOffsetAPI_MakeThickSolid——根据给定实体和要删除的面集构建空心实体;
  • BRepOffsetAPI_MakePipe——通过沿着导线(spine)扫掠形状轮廓(profile)来构建管道形状(用于创建管道(Pipe)形状,通常是通过沿着一条给定的曲线生成具有不同截面的形状。这是一种通过定义路径和截面来创建具有变化横截面的几何体的方法);
  • BRepOffsetAPI_MakeEvolved——从平面或线(spine)和轮廓(profile)构建可展形状(是一个更一般化的工具,用于创建演化(Evolved)形状。它可以处理更复杂的几何演变,包括旋转、放样、扭曲等。与 BRepOffsetAPI_MakePipe不同,BRepOffsetAPI_MakeEvolved可以执行更广泛的形状演变操作)
    ![[Pasted image 20231116102107.png]]
建模API:BRepFilletAPI

该package提供了用于创建圆角和切角的类:

  • BRepFilletAPI_MakeFillet2d 二维倒角
  • BRepFilletAPI_MakeFillet 三维倒角
  • BRepFilletAPI_MakeChamfer 切角
    ![[Pasted image 20231116103755.png]]
建模API:修改历史记录

有时,内置操作无法解决建模问题。在这种情况下使用自定义建模管道。 OCCT 没有持久索引;操作后拓扑项可能会发生不可预测的变化。历史支持可以克服这个问题。建模算法具有三种方法可以了解拓扑操作后初始形状“S”的修改状态:

  • IsDeleted(S) 告知形状“S”是否已被算法删除;
  • Modified(S) 列出了表示形状“S”的修改状态的形状(此类形状与“S”具有相同的基础几何形状)。
  • Generated(S)列出了算法从形状“S”生成的形状(此类形状具有“S”中不存在的新基础几何形状)
    ![[Pasted image 20231116104451.png]]

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

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

相关文章

2023.11.16使用原生js和canvas实现图片矩形框标注功能

2023.11.16使用原生js和canvas实现图片矩形框标注功能 做训练的时候需要一些数据集&#xff0c;但是网上数据集有时不能满足自身的使用需求&#xff0c;自己编制一个标注软件实现数据采集功能。 记录的数据集可以传入后端&#xff0c;在后端再次进行处理。 <!DOCTYPE htm…

010.内核模块

Linux内核采用的是模块化技术&#xff0c;这样的设计使得系统内核可以保持最小化&#xff0c;同时确保了内核的可扩展性与可维护性&#xff0c;模块化设计允许我们在需要时才将模块加载至内核&#xff0c;实现内核的动态调整。 Linux内核模块文件的命名方式通常为“模块名称.k…

什么是原生IP与广播IP?如何区分判定?

在代理IP中&#xff0c;我们常常听到原生IP与广播IP&#xff0c;二者有何区别&#xff1f;如何区分呢&#xff1f;下面为大家详细讲解。 一、什么是原生ip 原生IP地址是互联网服务提供商&#xff08;ISP&#xff09;直接分配给用户的真实IP地址&#xff0c;无需代理或转发。此…

猫罐头哪个牌子好?分享十款猫罐头品牌排行榜!

选择适合的猫罐头非常重要&#xff0c;好的猫罐头应该提供丰富的营养、适量的水分、口感良好&#xff0c;并且易于消化吸收。然而&#xff0c;如果选择不当&#xff0c;可能无法达到期望的效果&#xff0c;甚至可能对猫咪产生负面影响。 作为一位经营猫咖5年的老板&#xff0c;…

《许犁庭与柔性世界》第十三章 伊拉斯蒂克

“哈哈哈&#xff0c;居然小脸着地&#xff01;看来桉嘴牛的发射也没那么安全。”若丹姐姐嬉皮笑脸来到她面前&#xff0c;“怎么样&#xff0c;惊险不惊险&#xff0c;刺激不刺激&#xff1f;” 许犁庭脸色发白&#xff0c;身子发虚&#xff0c;只觉得心儿依旧高悬不落&#x…

算法通关村第九关-黄金挑战二叉树较难问题

将有序数组转换为二叉搜索树 描述 : 给你一个整数数组 nums &#xff0c;其中元素已经按 升序 排列&#xff0c;请你将其转换为一棵 高度平衡 二叉搜索树。 高度平衡 二叉树是一棵满足「每个节点的左右两个子树的高度差的绝对值不超过 1 」的二叉树。 题目 : LeetCode 10…

Davinci Developer Classic SWC新建port并连接非complete port方式

环境 在automic SWC新建port 在父SWC的port view里面找到对应的信号&#xff0c;有件选择创建连接到SWC上 <完>

应用disruptor队列-ringBuffer环形缓冲器

一disruptor介绍 Disruptor是一个高性能的消息框架&#xff0c;其核心是基于环形缓冲区实现的。Disruptor的设计目标是尽可能地减少线程之间的竞争和同步&#xff0c;从而提高系统的吞吐量和响应速度。下面让我来介绍一下在使用Disruptor中如何优雅地使用环形队列。 首先&…

前端学习笔记--TypeScript

1. typescript是什么 Typescript是由微软开发的一款开源的编程语言Typescript是Javascript的超集&#xff0c;遵循最新的ES5/ES6规范。TypeScript扩展了Javascript语法TypeScript更像后端Java、C#这样的面向对象语言可以让JS开发大型企业应用越来越多的项目是基于TS的&#xf…

喜讯 客户工艺线顺利通线

带你了解CiMEMS微纳制造工艺线 随着国内智能网联汽车、智能终端、可穿戴设备与消费电子的高速发展&#xff0c;以集成微纳系统&#xff08;Micro-electro-mechanical Systems&#xff0c;MEMS&#xff09;为代表的主要应用于激光雷达、汽车电子、环境感知与智能传感器的芯片&a…

释放搜索潜力:基于Milvus快速搭建语义检索系统(快速版),让信息尽在掌握

搜索推荐系统专栏简介:搜索推荐全流程讲解(召回粗排精排重排混排)、系统架构、常见问题、算法项目实战总结、技术细节以及项目实战(含码源) 专栏详细介绍:搜索推荐系统专栏简介:搜索推荐全流程讲解(召回粗排精排重排混排)、系统架构、常见问题、算法项目实战总结、技术…

利用IP地址查询优化保险理赔与业务风控的实用方法

随着数字化时代的到来&#xff0c;保险行业正逐渐采用先进的技术来改善理赔流程和强化业务风控。其中&#xff0c;通过IP地址查询成为一种有效的手段&#xff0c;为保险公司提供更精准的信息&#xff0c;以便更好地管理风险和提高服务效率。本文将探讨如何利用IP地址查询优化保…

立创EDA导出封装给PADS9.5使用

立创EDA导出封装给PADS9.5使用 前言 因为更换了新环境&#xff0c;需要使用PADS9.5进行电路设计&#xff0c;但是因为之前一直使用的是立创EDA、AD18&#xff0c;这会导致原先的元件库丢失&#xff0c;同时无法享受立创EDA丰富的封装库资源&#xff0c;因此记录一下如何将立创…

Docker-compose 下载安装测试完成

源文件-http://t.csdnimg.cn/7NxHchttp://t.csdnimg.cn/7NxHc 1 docker-compose说明 Docker Compose 是Docker的组装工具&#xff0c;用于创建和调试多个Docker容器&#xff0c;并在同一个Docker主机上运行它们。Docker Compose基于YAML文件&#xff0c;描述多个容器之间的相…

原论文一比一复现 | 更换 RT-DETR 主干网络为 【VGG13】【VGG16】【VGG19】| 对比实验必备

本专栏内容均为博主独家全网首发,未经授权,任何形式的复制、转载、洗稿或传播行为均属违法侵权行为,一经发现将采取法律手段维护合法权益。我们对所有未经授权传播行为保留追究责任的权利。请尊重原创,支持创作者的努力,共同维护网络知识产权。 论文地址:https://arxiv.o…

Wordpress页面生成器:Elementor 插件制作网站页面教程(图文完整)

本文来教大家怎么使用Wordpress Elementor页面编辑器插件来自由创建我们的网页内容。很多同学在面对建站的时候,一开始都是热血沸腾信心满满的,等到实际上手的时候就会发现有很多问题都是无法解决的,希望本篇Elementor插件使用指南能够帮助到你。 Wordpress Elementor页面编…

【JVM】Java虚拟机

本文主要介绍了JVM的内存区域划分,类加载机制以及垃圾回收机制. 其实JVM的初心,就是让java程序员不需要去了解JVM的细节,它把很多工作内部封装好了.但是学习JVM的内部原理有利于我们深入理解学习Java. 1.JVM的内存区域划分 JVM其实是一个java进程 ; 每个java进程,就是一个jvm…

茶百道:门店数量狂飙,食品安全问题成最大绊脚石

茶百道近日传出即将在香港进行非交易路演&#xff0c;计划在今年内登陆港交所上市&#xff0c;消息一出引发市场广泛关注。然而&#xff0c;茶百道的上市能否成为其自救的解药&#xff0c;还存在诸多质疑。 茶百道的惊人营收增长背后&#xff0c;门店数量的迅速扩张功不可没。在…

Windows10安装麒麟桌面V10双系统

概述 想要在Windows10操作系统中安装麒麟V10的桌面操作系统&#xff08;Kylin-Desktop-V10-Professional-Release-Build1-210203-X86_64&#xff09; 安装前准备 1、先搞清楚自己的电脑类型 A MBR传统bios单硬盘 B MBR 传统bios双硬盘&#xff08;SSD固态硬盘机械硬盘&…

PatchMatchNet笔记

PatchMatchNet笔记 1 概述2 PatchmatchNet网络结构图2.1 多尺度特征提取2.2 基于学习的补丁匹配 3 性能评价 PatchmatchNet: Learned Multi-View Patchmatch Stereo&#xff1a;基于学习的多视角补丁匹配立体算法 1 概述 特点   高速&#xff0c;低内存&#xff0c;可以处理…