zoukankan      html  css  js  c++  java
  • BMesh 逆收缩代码对应解释

    构建标量场函数为了演化(逆收缩)

    [f_{i}(r)=left{egin{array}{c} left(1-left(frac{r}{R_{i}} ight)^{2} ight)^{2}, quad r leq R_{i} \ 0, quad r>R_{i} end{array} ight. ]

    其中 r^2 就是球函数
    (r^{2}=left(x-c_{x}^{i} ight)^{2}+left(y-c_{y}^{i} ight)^{2}+left(z-c_{z}^{i} ight)^{2})
    (R_i=alpha r_i) 其中(r_i)是球i的半径((c_x^i, c_y^i, c_z^i))是球的中心坐标,(alpha)是1.5应该就是一个系数。
    标量场定义为满足下面公式的东西。
    (mathcal{I}(oldsymbol{x})=sum_{i=1}^{n} f_{i}-T=0)
    其中(T)是门限参数,门限参数控制着演进网格多接近标量场。一个更大的T降维生成更瘦的结果。
    初始的网格图2C,定义为要演化的网格。
    具体而言点在表面移动的轨迹被认为时间t的函数x(t)

    [frac{d oldsymbol{x}}{d t}=oldsymbol{n}(oldsymbol{x}, t) mathcal{F}(oldsymbol{x}, oldsymbol{n}, mathfrak{K}, mathcal{I}, cdots) ]

    其中 (d oldsymbol{x} / d t) 认为是速率。(oldsymbol{n}=- abla mathcal{I} /| abla mathcal{I}|)
    被认为是法向量,(mathcal{I}) 被认为是标量场。(mathcal{F}(oldsymbol{x}, oldsymbol{n}, mathfrak{K}, mathcal{I}, cdots)) 是一个带符号的标量函数(运动速度函数)依赖于标量的属性包括位置和法向量曲率和标量场等等。典型的S(0)是初始化网格。
    运动速度函数(mathcal{F}) 被标量场和一个切线水平集决定。公式如下

    [mathcal{F}(oldsymbol{x}, oldsymbol{n}, mathfrak{kappa}, mathcal{I}, cdots)=left(mathcal{I}(oldsymbol{x})-mathcal{I}_{ ext {target}} ight) f(mathfrak{kappa}) ]

    这公式意味着顶点演化的更快如果它原理切线水平集。区域函数在这个公式中控制着演化速度对不同区域的自适应。
    标量场靠近小球会比靠近打球更加密集。在当前的系统中。(f(kappa)=1/left(1+left|kappa_{1} ight|+left|kappa_{2} ight| ight))表现的很好(kappa_{1})(kappa_{2})是顶点 (x) 的主曲率。
    一个顶点(oldsymbol{x}(t))在当前的网格面S(t)演进如下所示

    [oldsymbol{x}(t+Delta t)=oldsymbol{x}(t)+oldsymbol{n}(oldsymbol{x}, t) mathcal{F}(oldsymbol{x}, cdots) Delta t ]

    (Delta t) 是时间间隔防止出现震荡情况,我们限制的迭代的次数。公式从另一篇论文CFL中导出
    同时我们限制(Delta t)的最小值

    [Delta t leq frac{ ext {step}}{mathcal{F}_{max }(oldsymbol{x}(t), cdots)} ]

    step 定义为
    (step =min left{r_{i} ight} / 2^{k}) k是细分次数。最小的step定义为最小的球面半径

      double step = getMinRadius(root, root->getValue()->radius) / pow(2, subdivisionLevel);
    

    网格演进终止与表面接近标量场。演化工程在接近表面的时候很快。

  • 相关阅读:
    笔记-归并排序
    Repeated Substring Pattern
    Assign Cookies
    Number of Boomerangs
    Paint Fence
    Path Sum III
    Valid Word Square
    Sum of Two Integers
    Find All Numbers Disappeared in an Array
    First Unique Character in a String
  • 原文地址:https://www.cnblogs.com/eat-too-much/p/14208995.html
Copyright © 2011-2022 走看看