gpt4 book ai didi

interpolation - 整数的余弦插值

转载 作者:行者123 更新时间:2023-12-04 06:33:01 24 4
gpt4 key购买 nike

好的,所以我最近一直在研究插值。遗憾的是,我读过的几乎每篇文章都只讨论精确到 0.0 到 1.0 的小数级别的插值。我想插入整数整数,不管它们有多大,或者是否有负数或其他什么。我用线性插值完成了这个:

public int interpolate(int y1, int y2, int length, int x){
return y1 + x * (y2 - y1) / (length-1);
}

但是我坚持使用余弦插值。 This很棒的文章讨论了余弦插值,但是如上所述,它是在一个从 0.0 到 1.0 的数字系统上。这是我目前所拥有的:

public int interpolate(int y1, int y2, int length, int x){
int v = (int)(y2 - Mathf.Cos(x * 3.1415f))/2;
return (y1 + x * (y2 - y1) / (length-1)) * v;
}

它不起作用,虽然它返回一个几乎随机的数字,没有真正的方向,使它根本不平滑。这就是我需要你帮助的地方。长话短说:如何制作处理整数的余弦插值函数?

最佳答案

cos θ 的输出范围从 1 到 -1 再到 1,因为它的输入范围是 [0, 2π]。我们需要来自 [0, 1] 的东西。所以

  1. 将域限制为[0, π] 以将辅域限制为[1, -1]
  2. 从 1 中减去,codomain 为 [0, 2]
  3. 除以 2 得到 [0, 1] 的辅域

你已经得到一个从 0 到 1 的漂亮函数。剩下的就是转换参数。

本质上你需要

(int) ((1 - cos(pi*x / (length-1)))/2 * (y2-y1)+y2)

关于interpolation - 整数的余弦插值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9026384/

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