gpt4 book ai didi

c++ - 逆时针插值一个角度?

转载 作者:行者123 更新时间:2023-11-28 03:46:23 30 4
gpt4 key购买 nike

现在我正在使用线性贝塞尔曲线来插值角度:

    float CardAnimation::valueAt( float valueA, float valueB, float t ) const
{
return (1.0f - t) * valueA + t * valueB;
}

....
if(m_startCard.m_angle != m_endCard.m_angle)
{
m_targetCard->m_angle =
valueAt(m_startCard.m_angle, m_endCard.m_angle,m_interval);
}

这按预期工作。但这是我的问题。如果你的起始角度是 0.5f 并且你想转到 6.0f(以弧度为单位)那么它将从 0.5f 顺时针转到 6.0f 当真的因为 6.0f - 0.5f > 3.14f 逆时针转会更聪明从 0.5f 到 6.0f(导致仅移动 0.78 弧度而不是 5.5)。如果 abs(endAngle - startAngle > PI),我应该如何逆时针插值?

谢谢

最佳答案

如果abs(endAngle - startAngle) > PI , 然后减去 2*PI来自 endAngle .然后而不是从 0.56.0 ,你从0.5-0.28 .

编辑:

这实际上假设0 <= startAngle < endAngle <= 2*Pi .

如果0 <= endAngle < startAngle <= 2*PistartAngle - endAngle > PI ,然后添加 2*PIendAngle .

关于c++ - 逆时针插值一个角度?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7522680/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com