As-rigid-as possible shape manipulation: 论文详解目录

  • 2019 年 10 月 8 日
  • 笔记

我这里用几篇文章详解了论文算法。详细说明了输入输出,处理过程,并介绍了算法的应用范围。该论文算法分为两步,这里的文章将按照算法的输入输出、公式详解、代码实现的方式对算法做极其详尽的讲解。

这里对该论文的讲解可能是您见到的最详细的解释,而且我尽量用简洁的代码来实现算法。

在这几篇讲解中,我对论文中的每一个公式都做了尽量详细的讲解。最关键的是,我使用了Mathematica代码来推导公式。放心!Mathematica代码非常好懂,可视化效果非常好,写起来很像手写公式。另外,Mathematica代码还可以输出论文Latex公式以及C++代码,给我编程过程减少很多重复工作量。

您可能会在知乎、CSDN上看到过各种对这篇经典论文的详解,但都没有如下文章讲解详细,而且所有人引用的代码都是github上别人写的开源代码。绝大部分代码写的都挺复杂,而且文档非常不详细,看起来挺费劲的。所以我这里用C++尽量简单的实现算法细节,还专门写文章来对每个函数做详解。

  1. 论文介绍
  2. 第一步算法输入与输出
  3. 第一步算法详解
  4. 第一步算法的C++代码实现
  5. 第二步算法输入与输出
  6. 第二步算法的第一小步详解
  7. 第二步算法的第一小步代码
  8. 第二步算法的第二小步详解
  9. 第二步算法的第二小步代码

这里的代码都是开源的。地址为:

https://coding.net/u/forestsen/p/ARAPShapeManipulation

后续将对该论文算法进行优化。

其中,该论文作者Igarashi教授在2009年发表的一篇文章[1]使用了更直观更容易理解的思想重新介绍了这篇论文的理论。

引用

[1] Igarashi T , Igarashi Y . Implementing As-Rigid-As-Possible Shape Manipulation and Surface Flattening[J]. Journal of Graphics Gpu & Game Tools, 2009, 14(1):17-30.