本页只解决一个问题
最小二乘共形映射怎样形成矩阵,为什么低能量仍可能翻转?
本页是原长篇讲义的单概念版本。第一次阅读只追踪本页定义的对象;看见未掌握的前置符号时,先沿链接退回,不要跳过定义硬背结论。
开始前
14. LSCM 的单三角形组装
在局部复坐标zi=xi+iyi 中,线性 UV 函数w=u+iv 的反全纯导数在三角形内为常数。可将每个三角形贡献写成
Et=4At1∣(wj−wi)(zk−zi)−(wk−wi)(zj−zi)∣anti2,
更方便的实现形式是直接离散 Cauchy–Riemann 残差。设
∇u=a∈{i,j,k}∑ua∇ϕa,∇v=a∑va∇ϕa.
三角形残差:
rt=[ux−vyuy+vx]=Ctxt,
xt=(ui,uj,uk,vi,vj,vk)T.
局部能量
Et=At∥Ctxt∥2,
局部 Hessian
Ht=2AtCtTCt.
把Ht scatter-add 到全局矩阵H。因为平移、旋转和缩放不改变共形性,系统有相似变换自由度;通常固定两个不同顶点的 UV 坐标,或添加规范化约束。
15. LSCM 约束系统
将所有未知量排列为
x=(u1,…,un,v1,…,vn)T.
问题:
xmin21xTHxs.t.Cx=d.
KKT 系统:
[HCCT0][xλ]=[0d].
或者消去固定变量,只解自由变量:
HFFxF=−HFCxC.
锚点应尽量相隔较远,否则尺度规范化病态。
16. LSCM 不保证无翻转
LSCM 最小化二次能量,但可行域没有包含detJt>0 约束。特别是:
- 网格不是圆盘;
- 锚点选择差;
- 三角形退化;
- 边界高度非凸;
- 能量极小值经过退化状态;
都可能出现翻转。需要显式 barrier,例如对detJt 加
−μlogdetJt
或使用本身在detJ→0+ 时发散的 symmetric Dirichlet 能量并配合 line search。
读完必须能回答
- 不看公式,用自己的话回答开头的核心问题。
- 指出本页最重要公式中每个符号的类型:标量、向量、矩阵、映射还是集合。
- 找出定理成立所需的假设,并举一个删除某条假设后可能失败的例子。
- 对最小例子手算一遍;若本页含代码,再比较手算与程序输出。
前后课程
上一课:三角形 Jacobian 与共形能量 | 下一课:顶点缩放与曲率 Jacobian
许可协议:CC BY
作者:Davids
本文链接:https://hustjjd.github.io/ccg/05-07-lesson/
更新于:2026年10月12日