在球体上插值不规则数据

计算科学 插值 球谐函数
2021-12-09 16:26:07

我正在尝试在球体上球面插值的源库。我遇到了SHTns库,建议它很有用,但我并不清楚如何将它用于插值目的。f(θ,ϕ)

我想知道是否有人可以对此有所了解。非常感谢。

2个回答

经过更多搜索后,我设法找到了我想要的东西。它们在 NETLIB 上可用作 stripack 和 ssrfpack - fortran 例程 - 允许使用球面样条对不规则数据进行球面插值。

还有一种替代方法是使用广义格林函数来处理受拉的球面样条曲线matlab 代码(和相关论文)在那里可用,尽管它具有 GMT 作为依赖项。

在对球面插值的基本搜索中,我发现了这些:

  • 图形数学模板库 (GMTL)

链接: http: //ggt.sourceforge.net/

如何使用四元数执行球面插值?

使用 slerp 功能。您需要一个原点四元数、一个目标四元数和一个介于 0 和 1 之间的插值量。以下示例在原点和目标四元数的中间进行插值。请注意,插值路径遵循围绕球体的最短长度弧。

  gmtl::Quatf resultQuat, originQuat, targetQuat;
  float amount = 0.5;

  gmtl::slerp( resultQuat, amount, originQuat, targetQuat );

来源: http: //ggt.sourceforge.net/html/gmtlfaq.html

  • 球面插值示例代码

项目链接: http: //freesourcecode.net/cprojects/2275/Piecewise-Linear-Image-Denoising

C++ 链接: http: //freesourcecode.net/cprojects/2275/sourcecode/quaternion_demo.cpp

H链接: http: //freesourcecode.net/cprojects/2275/sourcecode/quaternion_demo.h

  • OpenGL演示引擎:

球面插值: http: //gitlab.scss.tcd.ie/gv2/opengldemoengine/blob/bc0b7ab4f7e4fc287dd7905353bf4a783c05813d/Dependencies/assimp--3.0.1270/include/assimp/quaternion.h

链接: http: //gitlab.scss.tcd.ie/gv2/opengldemoengine