如何将点集中在曲率较高的区域?


11

如何在隐式表面上分布点,以将其更密集地集中在曲率较高的区域?

我考虑过根据曲率随机添加点并拒绝不需要的点,但是我想知道是否有更好的方法可以在相似曲率的区域上提供更均匀的分布,同时仍然提供较高曲率下所需的更高密度。曲率区域。

我正在专门研究将这些点用于曲面的三角测量,并且我不想创建更多的三角形,而不是需要相对平坦的零件。


这将应用于具有已知导数的形状,因此可以计算给定点的曲率。

这不必是实时方法。


您是否在寻找一种更准确的方式从分布中进行抽样,而无需进行蒙特卡洛检验?如果您不太在意计算方法(例如,您在寻找一种准确的方法而不是计算工作),我可能会提供解决方案,但是当然可以对其进行优化。
user8469759

3
您知道分析功能还是只能采样?您知道它的分析导数吗?
Julien Guertault

@JulienGuertault我的编辑是否明确?
trichoplax

@Lukkio我想先提高准确性,然后在该方法可行后再进行优化。
trichoplax

1
您可能想看一看有限元方法,这些方法也使用三角剖分(或更笼统地说:单纯形),并且经常面临在选定区域需要更高采样密度的问题。他们一定会为此开发算法。
Wrzlprmft

Answers:


11

我将尝试应用的想法如下:我以曲线为例,但是对于曲面的应用应该很简单。

假设我们有一条均匀地参数化的曲线。假设曲线的参数为s。您的目标是对与s的值相对应的点进行采样,以使曲率较高。γss

如果获得曲率的大小,那么它也将是s的函数。因此,如果您标准化函数| c | ,您将获得概率分布。如果获得这种分布的积分,则将具有累积分布。我们将此累积函数称为C s cs|c|C(s)

由累积函数给出的分布中的采样问题是众所周知的,因此,基本上,一旦您对一组值进行采样,该值将与关注点相关。s0,s1,,sn

该方法在表面情况下的应用应该是笔直的,因为基本上您具有二维累积分布函数,但是采样问题完全相同。

仅提供一些细节,鉴于累积函数涉及两个步骤,它基本上是从分布中采样:

  1. 采取在区间的随机值,让我们说ķ[0,1]k

  2. 求解方程C(s)=k

这种方法是精确的,当然它很昂贵,但是如果您喜欢这种方法,则可以进行优化。


1
尚无乳胶支持。
joojaa 2015年

我一直在寻找可以与隐式表面一起使用的东西,即使它没有参数化也是如此。如果导数已知,是否总是可以参数化隐式曲面?
trichoplax

任何可以从MathJax公式中受益的问题都可以添加到该元答案中,以增加获得MathJax的机会。(已经添加了这个。)
trichoplax

记住,您需要的是从曲率导出的分布函数,您说您可以导出所有内容(通过哪种方式获得表面?即方程式)。无论如何...“衍生产品已知”是什么意思?您知道导数的显式吗?还是隐式的?(即用微分方程描述)?
user8469759

1
顺便说一下...如果曲线/曲面是代数的(我的意思是用多项式或有理乘数表示),则有一些基于bspline / nurbs的计算方法可以解释如何对这些曲线进行参数化。我在这里浏览了docs.lib.purdue.edu/cgi/…,可以在我最喜欢的一本有关Nurbs的书(蒂勒的NURBS书)中找到进一步的方法(甚至高级)。
user8469759


2

以下朴素的方法可能不会产生如Lhf所给出的那样均匀分布的点,但是它应该更容易实现并且计算速度更快:

xyd(x,y)xyxy

A

  1. xd(x,x)

  2. A

  3. A

    1. xyA
    2. zd(x,y)A
    3. zd(x,y)A

      • 如果是,则将其丢弃。
      • xzyzzA

A

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.