CGAL的权重

1、介绍

        许多几何算法依赖于中间计算标量,即所谓的权重,然后用于解决不同的线性系统或偏向于一个结果而不是另一个,也称为加权。这个包为不同类型的权重提供了一个简单和统一的接口。

        一个典型的需要权重的几何算法是三角形网格的Laplace平滑:

        vi←vi+hλΔvi,

        其中vi是网格顶点i的位置,h是一个足够小的步长,λ是标量扩散系数,Δvi是在顶点vi处计算的离散的Laplace-Beltrami算子的平均值,使用cotangent权重进行计算:

        Δvi=wi∑vj∈N1(vi)wij(vj−vi),

        其中wi=12Ai和wij=cotβij+cotγij和Ai是一个局部平均域。

        在这里,权重wij可以使用cotangent权重和局部平均域进行计算,后者可以使用混合Voronoi区域权重进行计算。上述算法平滑了网格几何,产生了原始网格的更高质量版本。可以在这里找到所有三角形网格顶点的离散拉普拉斯算子的完整示例。

        这个包中的权重被许多其他场景使用。特别是,以下CGAL包使用这个包中描述的权重:2D广义重心坐标、多边形网格处理、三角形表面网格变形、三角形表面网格参数化、三角形表面网格骨架化和热方法。

2、权重

        我们称解析权重为所有可以用简单的解析表达式计算的权重。此软件包中的所有权重都可以解析计算。然而,为了更好地浏览所有可用权重及其应用,我们区分了三组典型的权重

        分析权重包括所有基本权重,可以根据查询点在二维或三维中的局部邻居计算这些权重,但是这些邻居是定义好的。通常,配置是一个查询点和其他三个点。这些权重为每个查询点返回一个唯一值。

        重心权重包括可以针对平面多边形的顶点为查询点计算的所有权重。这些权重为每个查询点返回n个值,其中n是多边形顶点的数量。重心权重也用于计算二维重心坐标。

        加权区域包括用于平衡其他权重的所有权重,但很少单独使用。有时,这些权重也称为局部平均区域。这些权重通常是二维和三维对象的长度、面积和体积。

3、实施

        所有权重函数都具有简单统一的接口。特别是,所有解析权重函数通常都采用一个查询点以及二维或三维中的其他三个点,并返回一个唯一的标量。它们都具有相同的签名,并由一个特征类进行参数化,该特征类必须是二维计算用AnalyticWeight Traits_2或三维计算用AnalyticWeight Traits_3的模型。

        重心权重函数由概念 AnalyticWeightTraits_2 的特征类参数化,它们都是概念 BarycentricWeights_2 的模型。它们接受输入多边形和查询点,并计算该点相对于多边形所有顶点的权重。然后,计算出的权重在一个容器中返回,该容器提供相应的输出迭代器。这些权重函数还提供了一种属性映射机制,用于将多边形顶点的用户类型映射到 gegl::Point_2。

        所有加权区域具有相同的特征,并通过概念 AnalyticWeight Traits_2 或 AnalyticWeight Traits_3 的特征类进行参数化。返回的权重是一个唯一的标量。

        如果可以使用 sicurezza::Kernel_traits从输入点类型中推断出 traits 参数,则可以省略所有函数和类的 traits 参数。

        这个包中的几个权重有不同的实现。关于共面性的部分解释了它的一个原因。另一个原因是,在不同的社区中,相同的权重有不同的命名和计算方法。如果搜索这些权重,需要知道它们所有的替代名称,这很成问题。我们提供了这些权重的最常见的名称和实现。

3.1、共面性

        当计算查询点q相对于其邻居p0、p1和p2的权重时,局部配置是一个四边形[p0,p1,p2,q]或两个相连的三角形[q,p0,p1]和[q,p1,p2]。在3D中工作时,这些三角形不一定共面,换句话说,它们不属于同一个公共平面。

        此包中的某些权重仅支持共面配置,而其他权重则支持这两种配置。支持非共面配置的权重提供相应的3D点过载,而其他权重仅接受2D点类型。例如,余切权重支持共面和非共面配置,而离散谐波权重仅支持共面配置。

3.2、边情况

        此包中的权重均未为以下查询点定义

        端点段,即所谓的边,例如[p0,p1]或[p1,p2]或任何多边形边,以及端点,即所谓的角点,例如p0、p1或p2或任何多边形角点。例如,如果q=p0或q∈[p0,p1],则权重可能因除零等无效操作而未定义。

        一些权重还需要满足其他条件。有关更多详细信息,请参阅参考手册。

4、其他

        在CGAL中,分析权重函数用于计算查询点相对于其邻居的权重。这些权重函数通常用于计算点云数据的局部属性,如局部密度、局部形状等。

        AnalyticWeightTraits_2为2D空间中的分析权重提供了基本类型和函数。它定义了权重的基本数据类型,并提供了一些辅助函数,用于计算权重的值。

        在网格平滑中,权重是一个重要的概念,用于确定每个顶点或基元(如三角形)对平滑结果的影响程度。权重的大小通常取决于顶点或基元的位置、法向量、曲率等属性。

        在网格平滑过程中,每个顶点或基元都会分配一个权重,该权重表示其在平滑过程中所起的作用。权重较大的顶点或基元将对平滑结果产生较大的影响,而权重较小的顶点或基元则产生较小的影响。

        权重的计算方法可以根据不同的平滑算法而有所不同。一些常见的权重计算方法包括基于距离的权重、基于法向量的权重、基于曲率的权重等。这些方法可以根据顶点或基元的局部属性来计算权重,从而使得平滑结果更加准确和可靠。

        在网格平滑中,权重的选择和使用对于平滑结果的质量和准确性至关重要。合适的权重可以有效地减少噪声、保持几何特征、提高平滑结果的视觉效果等。因此,在选择和使用权重时,需要根据具体的应用场景和需求进行权衡和选择。

Tangent Weight:

  • Tangent weight函数用于计算给定点在给定几何对象上的切线权值。
  • 它通常用于计算点与几何对象之间的切线距离,以便在几何插值、拟合或逼近中使用。
  • Tangent weight函数返回一个数值,表示点相对于几何对象的切线距离。

Shepard Weight:

  • Shepard weight函数用于计算给定点在给定几何对象上的Shepard权重。
  • Shepard权重是一种用于评估点在给定几何对象上的重要性的度量方法。
  • 它通常用于网格生成、曲面重建、采样和可视化等应用中。
  • Shepard weight函数返回一个数值,表示点相对于几何对象的Shepard权重。

Barycentric Area:

  • Barycentric area函数用于计算给定点在给定几何对象上的Barycentric面积。
  • Barycentric面积是一种用于评估点在给定几何对象上的面积贡献的度量方法。
  • 它通常用于网格生成、曲面重建、采样和可视化等应用中。
  • Barycentric area函数返回一个数值,表示点相对于几何对象的Barycentric面积。

        比较:Tangent weight、Shepard weight和Barycentric area都是用于评估点在给定几何对象上的重要性的度量方法,但它们基于不同的几何概念和计算方法。Tangent weight基于切线距离的概念,而Shepard weight和Barycentric area则基于面积的概念。Shepard weight和Barycentric area在某些应用中可以互相替换,但它们可能具有不同的权值范围和行为特性。选择哪种权重函数取决于具体的应用需求和目标。

        discrete_harmonic_weights_2是一个用于计算二维离散调和权重的函数。

        离散调和权重是一种用于计算点在给定几何对象上的权重的方法,它基于离散调和函数的定义。在二维情况下,离散调和函数可以定义为在给定几何对象上所有顶点的权重之和,其中每个顶点的权重与该顶点到给定点的距离的平方成反比。

        CGAL中的discrete_harmonic_weights_2函数可以用于计算二维离散调和权重。它接受一个二维几何对象(例如三角形网格)和一组采样点作为输入,并返回每个采样点在几何对象上的离散调和权重。

        使用discrete_harmonic_weights_2函数,可以通过计算离散调和权重来评估每个采样点对几何对象的贡献程度。这种权重计算方法在许多计算几何应用中都很有用,例如网格生成、曲面重建、采样和可视化等。

        需要注意的是,离散调和权重是一种基于面积的权重计算方法,因此它对于具有较大面积的几何对象会给予较大的权重。同时,它也考虑了采样点与几何对象之间的距离,使得距离较近的采样点具有较大的权重。

        总之,CGAL中的discrete_harmonic_weights_2函数提供了一种方便的方式来计算二维离散调和权重,使得在计算几何应用中可以更好地评估采样点对几何对象的贡献程度。

        CGAL中的Wachspress_weights_2函数是用于计算二维几何对象(如三角形)上的Wachspress权重的函数。

        Wachspress权重是一种用于计算点在几何对象上的权重的度量方法,它基于几何对象的边界和内部区域进行计算。在二维情况下,Wachspress权重通常用于计算三角形上的权重。

        CGAL中的Wachspress_weights_2函数接受一个二维三角形和一组采样点作为输入,并返回每个采样点在三角形上的Wachspress权重。

        Wachspress权重具有以下特点:它是一种非负权重,表示点在几何对象上的重要性。权重值的大小与采样点相对于几何对象的边界和内部区域的距离有关。Wachspress权重可以用于各种计算几何应用,如网格生成、曲面重建、采样和可视化等。

        需要注意的是,Wachspress权重是一种基于面积的权重计算方法,因此它对于具有较大面积的几何对象会给予较大的权重。同时,它也考虑了采样点与几何对象之间的距离,使得距离较近的采样点具有较大的权重。

        总之,CGAL中的Wachspress_weights_2函数提供了一种方便的方式来计算二维几何对象上的Wachspress权重,使得在计算几何应用中可以更好地评估采样点对几何对象的贡献程度。

CGAL中的three_point_family_weight函数是用于计算三维几何对象(如四面体)上的三点家族权重的函数。

三点家族权重是一种用于计算点在几何对象上的权重的度量方法,它基于几何对象的边界和内部区域进行计算。在三维情况下,三点家族权重通常用于计算四面体上的权重。

        CGAL中的three_point_family_weight函数接受一个三维四面体和一组采样点作为输入,并返回每个采样点在四面体上的三点家族权重。

        三点家族权重具有以下特点:它是一种非负权重,表示点在几何对象上的重要性。权重值的大小与采样点相对于几何对象的边界和内部区域的距离有关。三点家族权重可以用于各种计算几何应用,如网格生成、曲面重建、采样和可视化等。

        需要注意的是,三点家族权重是一种基于体积的权重计算方法,因此它对于具有较大体积的几何对象会给予较大的权重。同时,它也考虑了采样点与几何对象之间的距离,使得距离较近的采样点具有较大的权重。

        总之,CGAL中的three_point_family_weight函数提供了一种方便的方式来计算三维几何对象上的三点家族权重,使得在计算几何应用中可以更好地评估采样点对几何对象的贡献程度。

        CGAL中的inverse_distance_weight函数是用于计算反距离权重(Inverse Distance Weighting, IDW)的函数。

        反距离权重是一种用于计算点在给定几何对象上的权重的度量方法。它基于反距离的概念,即点与几何对象之间的距离的倒数。在IDW中,给定一个采样点和一个几何对象,IDW函数将计算采样点在几何对象上的权重,该权重与采样点与几何对象之间的距离的倒数成正比。

        CGAL中的inverse_distance_weight函数接受一个几何对象和一组采样点作为输入,并返回每个采样点在几何对象上的反距离权重。

        反距离权重具有以下特点:它是一种非负权重,表示点在几何对象上的重要性。权重值的大小与采样点与几何对象之间的距离的倒数成正比。反距离权重可以用于各种计算几何应用,如网格生成、曲面重建、采样和可视化等。

        需要注意的是,反距离权重是一种基于距离的权重计算方法,因此它对于距离较近的采样点会给予较大的权重。同时,它也考虑了采样点与几何对象之间的距离,使得距离较远的周围点受到较小的影响。

        总之,CGAL中的inverse_distance_weight函数提供了一种方便的方式来计算反距离权重,使得在计算几何应用中可以更好地评估采样点对几何对象的贡献程度。

        这一章主要提供的是各种权重计算方法,根据不同的情况选择不同的权重计算方法

  • 18
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值