gpt4 book ai didi

math - 线性缩放功能 2D

转载 作者:行者123 更新时间:2023-12-05 03:07:19 30 4
gpt4 key购买 nike

我有一个 Canvas 和一个比例值。最大比例为 1,最小比例值类似于 0.1 或更高。假设我们有离散的时间单位。我正在寻找一个在时间间隔内线性缩放的函数 I (比方说 100 个时间单位),从一开始 zoom s到尽头 zoom e .让0 >= i < I是当前间隔。

示例:以 100 个时间单位从 0.2 缩放到 1.0。

显然 zoom(i) = (e-s)/I * i不产生线性缩放。因为从 0.2 到 0.4 的步长会使缩放倍增,而从 0.8 到 1.0 的相同步长只会使缩放增加 25%。

我在想这个函数需要一些以 2 为底的对数,但我一直找不到正确的函数。

最佳答案

要提供具有恒定参数差异的恒定比率,您需要指数函数(可以使用任何基数,e、2、10 等等以及相应的对数)

F(x) = A * Exp(B * x)

获取给定边界条件的系数 A 和 B(参数 x0 对应于函数值 F0):

F0 = A * Exp(B * x0)
F1 = A * Exp(B * x1)

将第二个方程除以第一个:

Exp(B * (x1 -x0) = F1 / F0
B * (x1 -x0) = ln(F1 / F0)

所以

B = ln(F1 / F0) / (x1 - x0)

A = F0 * Exp(-B * x0)

以你为例

x0=0, x1=100
zoom0 = 0.2, zoom1=1
B = ln(5) / 100 = 0.0161
A = 0.2 * Exp(0) = 0.2
zoom(i) = 0.2 * Exp(0.0161 * i)

zoom(0) = 0.2
zoom(50) = 0.447
zoom(100) = 1

note that
zoom(50) / zoom(0) = zoom(100) / zoom(50)

关于math - 线性缩放功能 2D,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47818880/

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