2009-06-26 51 views
2

我有一个n点的参考集,另一个'接近'每个点的集。如何找出逼近和我的参考集之间的绝对/百分比误差。换句话说,我有一个固定的动画和一个模拟。我怎么知道2个单数之间的“漂移”有多大?也就是说,与动画相比,近似顶点的模拟效果如何。2组3D点的百分比误差

我实际上为所有顶点做了这样的事情:| actual - reference |/| actual |然后通过除以vert的数量来平均误差。这是否正确?

回答

2

这是否测量真的是一个百分比值?我猜你有一个参考集,然后有几组接近这个集合,并且你想在某种意义上选择一个“最好”的集合。

我添加实际和参考之间的平方距离:

avgSquareDrift =总和(1..N,|实际 - 参考|^2)/ numvertices

主要优点这种方法是否我们不需要应用平方根,这是一个代价高昂的操作。

1

如果对所有顶点的公式进行求和(然后除以顶点的数量),您将计算所有顶点位置的平均百分比误差。

但是,这个百分比误差可能不是你想要的,因为接近原点的顶点对于相同的位移会有更大的“百分比误差”,因为它们的幅度较小。

如果不通过任何东西都分,你将不得不在世界单位的平均漂移,可能正是你想要的东西:

average_drift = sum(1->numvertices, |actual - reference|)/numvertices 

您可能希望通过更合适的东西来划分你的特殊情况得到一个有意义的无单位数字。如果您将average_drift除以模型的高度,则会将该误差作为模型大小的百分比,这可能很有用。

如果单个顶点如果距顶点“父”到它们很远,可能会出现更多错误,如果它们是节点模型的顶点,则可以将每个错误除以长度他们的父母共同来获得的平均误差归联合方向 - 即,如果每个关节都是单位长度的平均漂移会是什么:

orientation_drift = sum(1->numvertices, |actual - reference|/jointlength)/numvertices