非线性图的公式。你滑得越远,它移动的越少

Formula for non-linear graph. The further you slide, the less it moves

执行此操作的图形有一个名称,我正在尝试找出一种算法,该算法可以根据 DOUBLE 输入计算结果。

像这样: https://www.montereyinstitute.org/courses/Algebra1/COURSE_TEXT_RESOURCE/U03_L2_T5_text_final_files/image008.gif

我正在尝试创建一种方法来完成您在应用程序中看到的内容,该方法基本上会随着您拉得更远而减慢速度。因此,例如,如果你滑动手指,一个盒子很容易出现,但你拉得越远,它移动得越慢。

完整的要求是有一个 "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