gpt4 book ai didi

c - Doom 如何从现有的正弦查找表中确定其余弦查找表?

转载 作者:行者123 更新时间:2023-12-02 12:17:16 27 4
gpt4 key购买 nike

我很难理解 Chocolate Doom 如何分配其余弦表。评论解释说它在正弦表上进行 PI/2 移位以计算余弦表,但我不明白它是如何使用 C 完成的。

这是 Chocolate Doom 在 tables.htables.c 中的原始源代码

#define FINEANGLES 8192
const fixed_t finesine[10240] =
{
25,75,125,175,226,276,326,376,
...
}
const fixed_t *finecosine = &finesine[FINEANGLES/4];

这就是我想在 Kotlin 中实现的目标

val fineSine: Array<Fixed_t> = arrayOf(25,75,125,175,226,276,326,376, ...)
val fineCosine: Array<Fixed_t> = arrayOf() // This is where I'm stuck

最佳答案

一个完整的圆是 2pi 弧度。因此,要抵消 pi/2,您需要四分之一的距离。因此,如果圆圈中有 FINEANGLES 值,则可以偏移 FINEANGLES/4

但是为了访问 finecosine 中的 FINEANGLESfinesine 至少需要 FINEANGLES + FINEANGLES/4 值(假设没有逻辑环绕)。

一个简化的例子:

#define FINEANGLES 4
float finesine[] = {0, 1, 0, -1, 0};
float *finecosine = &finesine[FINEANGLES/4]; // {1, 0, -1, 0}

关于c - Doom 如何从现有的正弦查找表中确定其余弦查找表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64355426/

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