我面临的问题是如何从运动研究结果中得到某个组件在特定时间的位置。API中只有GetCMPosition
方法,它是质心,不是构件的原点。我需要自己计算吗?但我确实认为有更好的方法来获得它。
几个小时后,我自己找到了一个解决方案…把伪码贴在这里,希望能帮到别人。
public static ActionResult ExtractAnimation(this MotionStudy ms)
{
if (!ms.Activate())
return ActionResult.Error("activate motion study failed!");
double duration = ms.GetDuration(); // in seconds
if (duration <= 0) return ActionResult.Error("error message");
for (double currentTime = 0; currentTime < duration; currentTime += AnimationStepSize)
{
ms.SetTime(currentTime);
MethodUsingTransform(component.Transform2, currentTime);
}
ms.SetTime(duration);
MethodUsingTransform(component.Transform2, duration);
ms.Stop();
return ActionResult.Success();
}