非线性图的公式。你滑得越远,它移动的越少
Formula for non-linear graph. The further you slide, the less it moves
执行此操作的图形有一个名称,我正在尝试找出一种算法,该算法可以根据 DOUBLE 输入计算结果。
我正在尝试创建一种方法来完成您在应用程序中看到的内容,该方法基本上会随着您拉得更远而减慢速度。因此,例如,如果你滑动手指,一个盒子很容易出现,但你拉得越远,它移动得越慢。
完整的要求是有一个 "free pull" 的数量,即:它是一个 1:1 关系,你滑动手指的数量,输出值也是如此。并且有一个理论上的"max result",我认为这是理论上的,因为你的手指移动得越多,变化的量就越小。
我觉得有一个公式可以解决这个问题。所以任何数学的家伙,请帮助:)
您将不得不尝试看看哪种公式最适合您。
假设手指拉动的长度是D
,箱子移动的距离是D'
。您可以从非常简单的事情开始,例如:
D' = D / 2
然后,如果您需要 F
的 "free pull" 距离,您可能会像这样包含它:
D' = if D < F
then D
else F + (D - F) / 2
要查看 D'
的哪种行为最有效,您需要尝试不同的公式。例如平方根:
D' = if D < F
then D
else F + sqrt(D - F)
编辑: 这是上限为 F + M
的版本。它之所以有效,是因为 arctan 的上渐近线是 Pi/2
.
D' = if D < F
then D
else F + arctan((D - F) / M) * M * (2 / Pi)
Sample graph for F = 5, M = 3.
在此示例中,D'
永远不会达到 8
。
执行此操作的图形有一个名称,我正在尝试找出一种算法,该算法可以根据 DOUBLE 输入计算结果。
我正在尝试创建一种方法来完成您在应用程序中看到的内容,该方法基本上会随着您拉得更远而减慢速度。因此,例如,如果你滑动手指,一个盒子很容易出现,但你拉得越远,它移动得越慢。
完整的要求是有一个 "free pull" 的数量,即:它是一个 1:1 关系,你滑动手指的数量,输出值也是如此。并且有一个理论上的"max result",我认为这是理论上的,因为你的手指移动得越多,变化的量就越小。
我觉得有一个公式可以解决这个问题。所以任何数学的家伙,请帮助:)
您将不得不尝试看看哪种公式最适合您。
假设手指拉动的长度是D
,箱子移动的距离是D'
。您可以从非常简单的事情开始,例如:
D' = D / 2
然后,如果您需要 F
的 "free pull" 距离,您可能会像这样包含它:
D' = if D < F
then D
else F + (D - F) / 2
要查看 D'
的哪种行为最有效,您需要尝试不同的公式。例如平方根:
D' = if D < F
then D
else F + sqrt(D - F)
编辑: 这是上限为 F + M
的版本。它之所以有效,是因为 arctan 的上渐近线是 Pi/2
.
D' = if D < F
then D
else F + arctan((D - F) / M) * M * (2 / Pi)
Sample graph for F = 5, M = 3.
在此示例中,D'
永远不会达到 8
。