CGAL 4.9 - Triangulated Surface Mesh Deformation
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相关推荐
- surface mesh framework运行
下载vs2017版本surface mesh framework:http://staff.ustc.edu.cn/~fuxm/code/index.html#sec_surface_framewor ...
- Open3D Mesh deformation
Mesh deformation 如果我们想根据少量的约束来变形三角形网格,我们可以使用网格变形算法.Open3D通过[SorkineAndAlexa2007]实现了尽可能严格的方法,该方法优化了以下 ...
- MS切面时surface mesh设置小数提示错误解决方案
切面时UV的值一直提示"Please enter three numeric values that define a lattice vector of the crystal" ...
- 计算机图形学 读书笔记(五) 网格参数化 Triangulated Surface Parameterization
写个读书笔记,一来作为字典以后可以查,二来记录自己的理解. 并没有对每个知识点的详细解释,大部分只有主观的定性的解释. 网格参数化的意义: 提供了网格和其他domain(如贴图)的映射,即:将一个三维 ...
- 【CGAL_网格】Surface_mesh
官方文档链接:CGAL 5.4.2 - Surface Mesh: User Manual 0 概述 Surface_mesh 类是半边数据结构的实现,可用于表示多面体表面. 相较于 Halfedge ...
- CGAL例程:地理信息系统----点云数据生成DSM、DTM、等高线和数据分类
作者:西蒙·吉罗多 链接:CGAL 5.4 - Manual: GIS (Geographic Information System) 目录 1 概述 2 不规则三角形网数据表示:TIN 3 数字表面 ...
- 【笔记】Polygon mesh processing读书笔记(5)
多边形网格处理(5) 5. 参数化(Parameterization) 5.1 通用目标 计算一个目标的参数化意味着为其附着一个坐标系统.这个坐标系统有许多可能的应用,比如纹理映射.法向映射(norm ...
- CGAL 4.11 官方文档 软件包概述 ——胞腔复形与多面体类
原文链接:https://doc.cgal.org/latest/Manual/packages.html 译文首发:http://blog.csdn.net/duzixi Cell Complexe ...
- CGAL笔记之单元格复合体和多面体篇—曲面网格
CGAL笔记之单元格复合体和多面体篇-曲面网格 0.前言 1.用法 1.示例 2.连通性 3.范围和迭代器 3.1 示例 4.循环器 1.示例 5.属性 1.示例 6.边界 7.Surface Mes ...
最新文章
- python 消息机制_Python并发编程之线程消息通信机制任务协调(四)
- Core Foundation 与 cocoa Foundation框架区别
- mgg mysql_MYSQL基础命令
- U盘autorun病毒清理
- windows下MATLAB2016a安装配置
- web前端开发视频教程完整54讲下载
- Axure RP 7.0注册码
- 2012年考研大纲词汇方便打印版(免费分享)
- 不积跬步 无以至千里 不积小流 无以成江海
- arcgis 地下管线三维建模
- 学生学籍的计算机管理属于,随着计算机的飞速发展,其应用范围不断扩大,某学校学生学籍的计算机管理属于__应用领域。A.科学计...
- MATLAB/simulink仿真 光伏蓄电池恒流恒压充电 系统启动运行在恒流充电模式
- lumen 的路由具体实现
- 【Go语言实战】—— 时间戳转标准输出格式,标准输出转时间戳,gorm查询标准化时间
- 副总经理(技术类)+技术总监都做些什么
- npm ERR,fatal: unable to access ‘https://github.com/nhn/raphael.git/‘: OpenSSL SSL_read: Connection
- 数据库有char和nchar varchar 和nvarchar区别是啥?
- SparkSQL内置函数
- java学习之破壳hello world
- 【UCOSIII】UCOSIII基础知识和STM32F103的移植
热门文章
- ogg oracle 到mysql_借助OGG完成Oracle到MySQL的数据迁移
- reinterpret_cast、dynamic_cast、static_cast的使用及注意事项
- Use Namesapce 使用方法简介
- C++中实现类似php的UTF8和UrlEncode函数的代码
- nginx简介(轻量级开源高并发web服务器:大陆使用者百度、京东、新浪、网易、腾讯、淘宝等)(并发量5w)(一般网站apache够用了,而且稳定)...
- POJ 3308 最少点集覆盖
- nginx主配置文件解释
- Android开发(22)--seekBar采用handler消息处理操作
- Android UI控件之Gallery(拖动效果) --拖动式图片浏览
- C#/winform 腾讯QQ注册