gpt4 book ai didi

ios - CAKeyframeAnimation 中的关键帧是否总是准确命中?

转载 作者:塔克拉玛干 更新时间:2023-11-02 10:19:07 25 4
gpt4 key购买 nike

谁能告诉我在动画运行时是否始终保证 CAKeyframeAnimation 中的关键帧以其准确值命中?或者……他们只是充当插值指南吗?例如如果我指定,比方说,路径上的 3 个点,让一些任意属性遵循 - 让我们称之为“位置” - 我指定 0.3f 秒的执行时间,同时(显然)点 1 和 3 必须被击中(因为它们是终点)我能保证点 2 将完全按照关键帧数组中的指定进行评估吗?令人惊讶的是,我还没有找到一个文档可以给出足够的答案。我问这个是因为我正在编写一个 OpenAL 音效同步器,它使用关键帧动画的路径来触发沿其长度的各种短声音,虽然其中大部分都被执行,但偶尔有一些不执行,我不知道如果是我的逻辑错误或我的代码。提前致谢。

最佳答案

一般来说,依赖作为计算结果的浮点值的“精确性”是充满危险的。例如下面的代码:

CGFloat x1 = some_function();
CGFloat x2 = some_other_function();
if(x1 == x2)
{
// do something
}

甚至不知道函数的作用很可能是不正确的。即使函数执行非常相似的计算,优化器也可能重新排序操作,导致小的舍入误差足以导致相等性测试失败。

应该是:

CGFloat x1 = some_function();
CGFloat x2 = some_other_function();
CGFloat tolerance = 0.1; // or some tolerance suitable for the calculation.
if(fabsf(x1 - x2) < tolerance)
{
// do something
}

其中公差是适合正在执行的计算的某个值。

因此,在不了解 CAKeyframeAnimation 内部结构的情况下,我可以告诉您任何需要精确值的代码本质上都是“脆弱的”。这并不是说您不会获得准确的值,您可能会得到,但这在很大程度上取决于输入数据。

希望对您有所帮助。

关于ios - CAKeyframeAnimation 中的关键帧是否总是准确命中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6076829/

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