简体   繁体   English

如何找到旋转的中心/轴?

[英]How to find the center/axe of rotation?

I have 2 3d models and have arrays of all their points and their correspondence. 我有2个3d模型,并具有所有点及其对应关系的数组。 I know that the second model is the first one but after rigid transformation. 我知道第二个模型是第一个模型,但是经过了严格的转换。 I also know the type of that transformation - translation or rotation. 我也知道这种转换的类型-平移或旋转。 I need to calculate the axis/center of transformation and it's value - angle or distance. 我需要计算转换的轴/中心及其值-角度或距离。 Case with translation is very simple. 翻译案例非常简单。 But I can't find solution for rotation. 但是我找不到轮换的解决方案。 More over I need to find the axis location relative to one of the model. 另外,我需要找到相对于模型之一的轴位置。 So only the coordinates of vector defining the axis aren't enough. 因此,仅定义轴的向量的坐标是不够的。 How can this problem be solved? 如何解决这个问题? PS: I use Java and C++ but even theoretical explanation will help me a lot. PS:我使用Java和C ++,但即使是理论上的解释也会对我有很大帮助。

It sounds like you need to registrate two models. 听起来您需要注册两个模型。 Maybe you should have a look at ICP and Registration . 也许您应该看看ICP注册

You didn't state it, but I assume the correspondences aren't exact, ie noisy. 您没有说明,但我认为对应关系不准确,即嘈杂。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM