【问题标题】:How to use Gaussian interpolation?如何使用高斯插值?
【发布时间】:2020-06-12 14:02:09
【问题描述】:

所以在三维平面中,我在任何给定的 x、y 或 z 处都有 3 个或更多点,我想在这些点之间画一条直线,但我面临的主要问题是我想要在它们之间建立“平滑路径”的选项。我听说过高斯插值,但不知道如何使用它。一个好的替代方案也可以。 https://i.stack.imgur.com/6rf8D.png希望我画的这张图能让它更清晰一点。感谢您的帮助

【问题讨论】:

    标签: math 3d interpolation


    【解决方案1】:

    要制作“平滑的路径”,你需要建立一些曲线,高斯插值不是为了这个目的。

    您可以计算 Catmull-Rom 样条曲线 - 构建一组平滑连接曲线的简单方法。 Arbitrary example - 你只需要在 3D 中计算三个分量。

    另一种方法-使用贝塞尔曲线平滑as described here


    我可以假设作者应用Gaussian function 来获取中间点 t 中的值作为基点 t1..t3 的加权和

    X(t) = G(t, t1) + G(t, t2) + G(t, t3)
    

    在哪里

    G(t, tx) = 1/(sigma*sqrt(twopi)) * exp(-((t - tx)/sigma)^2/2)
    

    【讨论】:

    • 在寻找可以使用的东西时,我也偶然发现了贝塞尔曲线。唯一的问题是它看起来很难实现,我希望找到更简单的东西。我也许能够弄清楚 Catmull-Rom 样条曲线,但我真的很想知道你所说的关于高斯插值是否真的是真的。因为在这个视频youtube.com/watch?v=Pm07D9bUktQ&t=450s 7:08 他开始解释他使用了高斯插值。基本上我想要实现的正是他所拥有的,除了我的世界引擎本身而不是模组包。
    • 如果您有很多带有坐标噪声的不精确点,您可以使用高斯平滑(diminish noise - 这里是位置噪声)对其进行平滑处理,但我知道您的点数很少,想要绘制平滑曲线而不是比直线段
    • 我也想画中间的任何东西。视频中的那个人只使用了 3 个点,并在 3d 平面中在它们之间绘制了直线。然后,他使用“高斯插值”,能够使路径变得平滑、圆润或笔直,介于两者之间。
    • 我添加了一个假设(没有文字说明不确定)
    猜你喜欢
    • 1970-01-01
    • 2021-10-07
    • 2019-04-30
    • 1970-01-01
    • 2019-03-10
    • 2018-06-17
    • 1970-01-01
    • 1970-01-01
    • 2017-03-05
    相关资源
    最近更新 更多