Here, I would like to derive the formula (10)



For triangle vjvivmv_jv_iv_m, we have the following three equation which is related to viv_i

wij∥(v′i−v′j)−Ri(vi−vj)∥2w_{ij}\|(v'_i-v'_j)-R_i(v_i-v_j)\|^2
wij∥(v′i−v′j)−Rj(vi−vj)∥2w_{ij}\|(v'_i-v'_j)-R_j(v_i-v_j)\|^2
wij∥(v′i−v′j)−Rm(vi−vj)∥2w_{ij}\|(v'_i-v'_j)-R_m(v_i-v_j)\|^2

The same as for for triangle vivjvnv_iv_jv_n we have:

wji∥(v′j−v′i)−Ri(vi−vj)∥2w_{ji}\|(v'_j-v'_i)-R_i(v_i-v_j)\|^2
wji∥(v′j−v′i)−Rj(vi−vj)∥2w_{ji}\|(v'_j-v'_i)-R_j(v_i-v_j)\|^2
wji∥(v′j−v′i)−Rn(vi−vj)∥2w_{ji}\|(v'_j-v'_i)-R_n(v_i-v_j)\|^2

Taking derivative of those equations w.r.t viv_i and sum them up yields formula (10)

Then, let us look into alec jacobson’s matlab code

 function K = spokes_and_rims_linear_block(V,F,d)% Computes a matrix K such that K * R computes%  鈭�   -2*(cot(aij) + cot(bij) * (V(i,d)-V(j,d)) * (Ri + Rj) +%       -2*cot(aij) * (V(i,d)-V(j,d)) * Raij +%       -2*cot(bij) * (V(i,d)-V(j,d)) * Rbij% j鈭圢(i)% % where:          vj%              /  |  \%             /   |   \%            /    |    \%           /     |     \%          aij    |    bij%           \     |     /%            \    |    /%             \fij|gij/%              \  |  /%                 vi% % Inputs:%   V  #V by dim list of coordinates%   F  #F by 3 list of triangle indices into V%   d  index into columns of V% Output:%   K  #V by #F matrix%if simplex_size == 3% trianglesC = cotangent(V,F);i1 = F(:,1); i2 = F(:,2); i3 = F(:,3);I = [i1;i2;i2;i3;i3;i1;i1;i2;i3];J = [i2;i1;i3;i2;i1;i3;i1;i2;i3];v = [ ...C(:,3).*(V(i1,d)-V(i2,d)) + C(:,2).*(V(i1,d)-V(i3,d)); ... -C(:,3).*(V(i1,d)-V(i2,d)) + C(:,1).*(V(i2,d)-V(i3,d)); ... C(:,1).*(V(i2,d)-V(i3,d)) + C(:,3).*(V(i2,d)-V(i1,d)); ... -C(:,1).*(V(i2,d)-V(i3,d)) + C(:,2).*(V(i3,d)-V(i1,d)); ... C(:,2).*(V(i3,d)-V(i1,d)) + C(:,1).*(V(i3,d)-V(i2,d)); ... -C(:,2).*(V(i3,d)-V(i1,d)) + C(:,3).*(V(i1,d)-V(i2,d)); ... ... % diagonalC(:,3).*(V(i1,d)-V(i2,d)) - C(:,2).*(V(i3,d)-V(i1,d)); ... C(:,1).*(V(i2,d)-V(i3,d)) - C(:,3).*(V(i1,d)-V(i2,d)); ... C(:,2).*(V(i3,d)-V(i1,d)) - C(:,1).*(V(i2,d)-V(i3,d)); ... ];% construct and divide by 3 so laplacian can be used as isK = sparse(I,J,v,n,n)/3;elseif simplex_size == 4% tetrahedraassert(false)endend

The column dimension of matrix k goes through each vertex that edges connect to. Elements on each row of matrix k are the same for linearizing the rotation matrix summation.
For each vertex on each triangle, we sum cot* edge up through edges connected to it.

CGAL 4.9 - Triangulated Surface Mesh Deformation相关推荐

  1. surface mesh framework运行

    下载vs2017版本surface mesh framework:http://staff.ustc.edu.cn/~fuxm/code/index.html#sec_surface_framewor ...

  2. Open3D Mesh deformation

    Mesh deformation 如果我们想根据少量的约束来变形三角形网格,我们可以使用网格变形算法.Open3D通过[SorkineAndAlexa2007]实现了尽可能严格的方法,该方法优化了以下 ...

  3. MS切面时surface mesh设置小数提示错误解决方案

    切面时UV的值一直提示"Please enter three numeric values that define a lattice vector of the crystal" ...

  4. 计算机图形学 读书笔记(五) 网格参数化 Triangulated Surface Parameterization

    写个读书笔记,一来作为字典以后可以查,二来记录自己的理解. 并没有对每个知识点的详细解释,大部分只有主观的定性的解释. 网格参数化的意义: 提供了网格和其他domain(如贴图)的映射,即:将一个三维 ...

  5. 【CGAL_网格】Surface_mesh

    官方文档链接:CGAL 5.4.2 - Surface Mesh: User Manual 0 概述 Surface_mesh 类是半边数据结构的实现,可用于表示多面体表面. 相较于 Halfedge ...

  6. CGAL例程:地理信息系统----点云数据生成DSM、DTM、等高线和数据分类

    作者:西蒙·吉罗多 链接:CGAL 5.4 - Manual: GIS (Geographic Information System) 目录 1 概述 2 不规则三角形网数据表示:TIN 3 数字表面 ...

  7. 【笔记】Polygon mesh processing读书笔记(5)

    多边形网格处理(5) 5. 参数化(Parameterization) 5.1 通用目标 计算一个目标的参数化意味着为其附着一个坐标系统.这个坐标系统有许多可能的应用,比如纹理映射.法向映射(norm ...

  8. CGAL 4.11 官方文档 软件包概述 ——胞腔复形与多面体类

    原文链接:https://doc.cgal.org/latest/Manual/packages.html 译文首发:http://blog.csdn.net/duzixi Cell Complexe ...

  9. CGAL笔记之单元格复合体和多面体篇—曲面网格

    CGAL笔记之单元格复合体和多面体篇-曲面网格 0.前言 1.用法 1.示例 2.连通性 3.范围和迭代器 3.1 示例 4.循环器 1.示例 5.属性 1.示例 6.边界 7.Surface Mes ...

最新文章

  1. python 消息机制_Python并发编程之线程消息通信机制任务协调(四)
  2. Core Foundation 与 cocoa Foundation框架区别
  3. mgg mysql_MYSQL基础命令
  4. U盘autorun病毒清理
  5. windows下MATLAB2016a安装配置
  6. web前端开发视频教程完整54讲下载
  7. Axure RP 7.0注册码
  8. 2012年考研大纲词汇方便打印版(免费分享)
  9. 不积跬步 无以至千里 不积小流 无以成江海
  10. arcgis 地下管线三维建模
  11. 学生学籍的计算机管理属于,随着计算机的飞速发展,其应用范围不断扩大,某学校学生学籍的计算机管理属于__应用领域。A.科学计...
  12. MATLAB/simulink仿真 光伏蓄电池恒流恒压充电 系统启动运行在恒流充电模式
  13. lumen 的路由具体实现
  14. 【Go语言实战】—— 时间戳转标准输出格式,标准输出转时间戳,gorm查询标准化时间
  15. 副总经理(技术类)+技术总监都做些什么
  16. npm ERR,fatal: unable to access ‘https://github.com/nhn/raphael.git/‘: OpenSSL SSL_read: Connection
  17. 数据库有char和nchar varchar 和nvarchar区别是啥?
  18. SparkSQL内置函数
  19. java学习之破壳hello world
  20. 【UCOSIII】UCOSIII基础知识和STM32F103的移植

热门文章

  1. ogg oracle 到mysql_借助OGG完成Oracle到MySQL的数据迁移
  2. reinterpret_cast、dynamic_cast、static_cast的使用及注意事项
  3. Use Namesapce 使用方法简介
  4. C++中实现类似php的UTF8和UrlEncode函数的代码
  5. nginx简介(轻量级开源高并发web服务器:大陆使用者百度、京东、新浪、网易、腾讯、淘宝等)(并发量5w)(一般网站apache够用了,而且稳定)...
  6. POJ 3308 最少点集覆盖
  7. nginx主配置文件解释
  8. Android开发(22)--seekBar采用handler消息处理操作
  9. Android UI控件之Gallery(拖动效果) --拖动式图片浏览
  10. C#/winform 腾讯QQ注册