gpt4 book ai didi

delphi - 如何将滚动条位置转换为 Gamma 校正?

转载 作者:行者123 更新时间:2023-12-03 18:26:02 30 4
gpt4 key购买 nike

我想构建一个由单个数字组成的常量数组(1..200)来制作一个“查找表”,以将值为 1 - 200 的滚动条的位置转换为用于对图像应用 Gamma 校正的值。

第一个数组值的值在 7.0 - 9.9 之间(photoshop 使用 9.9)。中间的数组值 100 需要正好是 1.0。数组值 200 约为 0.01。

谁能告诉我使用哪种算法?

我一直试图在一些基于函数 Power(i, 2.2) 的测试代码中使用“反复试验”来制作数组,但没有成功。

我正在使用德尔福。我不是在问代码,只是在正确的方向上引导。任何帮助将非常感激。

最佳答案

这不是一个真正的编程问题,而是一个数学问题。

假设一个二次函数,形式为y=ax2+bx+c。

填写已知的三个值对:

9.9  = a + b + c
1 = 10000a + 100b + c
0.01 = 40000a + 200b + c

三个方程 + 三个未知数 = 可通过简单代入求解。
9.9 =   a + b + c
c = 9.9 - a - b

1 = 10000a + 100b + c
1 = 10000a + 100b + 9.9 - a - b
1 = 9999a + 99b + 9.9
1 - 99b = 9999a + 9.9
-99b = 9999a + 9.9 - 1
-99b = 9999a + 8.9
b = -101a - 8.9/99

0.01 = 40000a + 200b + c
0.01 = 40000a + 200b + 9.9 - a - b
0.01 = 39999a + 199b + 9.9
0.01 = 39999a + 199(-101a - 8.9/99) + 9.9
0.01 = 39999a - 20099a - 17.89 + 9.9
0.01 = 19900a - 7.99
0.01 - 19900a = -7.99
-19900a = -8
a = 8/19900
a = 0.000402

b = -101a - 8.9/99
b = -808/19900 - 8.9/99
b = -0.1305

c = 9.9 - a - b
c = 10.0301

换句话说: Gamma = 0.000402 * Pos^2 - 0.1305 * Pos + 10.0301

关于delphi - 如何将滚动条位置转换为 Gamma 校正?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40841471/

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