我正在寻找一个产生类似于钟形曲线的数学函数(想想)。我在这里非常不知所措。我认为高斯函数可能是我所需要的,但我不知道如何正确地应用它以达到我的目的。
我将使用该函数为一系列对象设置动画:
我想模拟这个动画加速和减速的外观,方法是将每个对象偏移到更靠近前一个对象,直到中间点,之后偏移增加回到原始值:
一旦实现,我希望函数接受我在 x 轴上的起点和终点,以及需要容纳的对象数量。然后它应该返回一系列值,这些值将成为每个对象的 x 原点。
例如:
开始:0 结束:100 对象:20
平坦分布:0、5、10、15、20、25、30、35、40、45、50、55、60、65、70、75、80、85、90、95
所需结果:0、10、19、27、34、40、44、45、46、47、48、49、50、51、55、60、66、73、81、90
对曲线轮廓的一些控制也会很好 - 例如,我上面的估计值是一个非常“平坦”的钟形(项目 7-14 具有相同的偏移量)。
最佳答案
考虑以下三次多项式:
f(x,a) = 4ax^3 - 6ax^2 + 2ax + x
在域 x in [0:1]
上计算,a
保持不变并从区间“[0:1]”中选择。
这将生成从零开始到一结束的图。如果 a==0
,你会得到一条直线。如果 a==1
,你会得到一条很深的曲线。对于介于两者之间的 a
,您会得到一些介于两者之间的东西。
一旦您为 a
选择了一个合适的值,您只需在 0 和 1 之间的任意多个点上进行评估。然后您缩放这些值以适应您想要的范围。
这张电子表格的截图给出了两个例子。 A 列和 F 列包含值 a
,B 列和 G 列包含 x
的值(如果您想使用平面分布中的确切值,您可以更改每个用法x
为 x/100
)。 C 和 H 列保存 f(x,a)
的结果。 D 列和 I 列包含 f(x,a)*100
。
关于objective-c - 在钟形曲线上分配数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13091249/