首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >用奇异值分解法(SVD)对齐2组三维点

用奇异值分解法(SVD)对齐2组三维点
EN

Stack Overflow用户
提问于 2016-03-03 09:21:45
回答 1查看 959关注 0票数 0

我想把等高线上的一组参考点转换成一组对应的目标点。每个等高线共有8个点。

为了计算旋转和平移向量,我使用Math.Net数字库来执行SVD计算--这个想法来自于这个URL (第3-7页):

但不知何故,我注意到使用SVD计算结果进行的转换似乎不准确。结果如下:

转换应该将参考点尽可能地移动到目标点,但正如突出显示的那样,它会远离目标点。

此外,我还做了一个简单的测试,计算轮廓的质心并执行演绎:(TargetCentroid - RefCentroid =平移向量)。最后的转换结果与通过SVD的结果相同。

我做错什么了吗?有人能提出一个更好的解决方案,将参考点转换为目标点吗?

编辑: 1.服装从参考模型到各种目标模型的转换

EN

回答 1

Stack Overflow用户

发布于 2016-03-03 10:17:15

这似乎是这个问题过于复杂的解决办法。

如果你有目标点,你就可以把给定的点和它们对应的目标点联系起来。

或者,如果目标是相同的网格,但不同的尺度和旋转,你可以只需要在转换值,比例和旋转尊重,而不需要逐个遍历所有的点。

使用Vector3.Lerp

编辑:另外,lerping会导致所有点同时到达它们的目标,在大多数情况下,这就是想要的行为。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35767936

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档