【前端】 在前端利用数学函数知识+box-shadow解波浪图形

正巧在复习一些数学知识,遂动手实践了一把使用 数学中的函数  使用css画连续曲线。

 

函数: 第一步

在数学中 函数 是指 ,一组定义域通过一组表达式, 映射到一组值域,也就是说 函数 f(x) = x^2 表示一个集合,每个输入x,固定通过x^2返回一个值y,由此定义可得:

当集合 X = {-2, -1, 0, 1, 2}  输入到函数f,得到的值域集合 Y = { y | y >= 0 }。  

我们也可以通过列表格,更直观的列举出函数的值:

当x = 1 时 y等于 1

当x = 2时 y等于 4

x=   -2   -1   0   1   2   ...  
y=   4   1   0   1   4   ...  

由这个表格,我们可以在坐标轴画出关于y = f(x) = x^2的函数的样子:

【前端】 在前端利用数学函数知识+box-shadow解波浪图形

开口控制

如果我们在y = x^2 加个负号会怎么样呢,y = f(x) = -(x ^ 2)

图像会倒过来变成像 n 这样的样子?

 就这样,我们可以通过这个函数,得到两种曲线,正的u 和 反的n那么问题来了,要画任意曲线,那么意味着,曲线要可大可小,可以在图中的任意一个位置,要怎么办呢?

 

嗯 仔细想想,如果函数 f(x) = x^2 再让它除以-2呢

f(x) = x^2 / -2

x=   -2   -1   0   1   2   ...  
y=   -2   -1/2   0   -1 /2   -2   ...  

手动画一下图像大约长下面这样:

【前端】 在前端利用数学函数知识+box-shadow解波浪图形

 

 

 

y会因为除以2变得更小(想象一下两侧的y值会变小),当x = 2 ,  y就会等于2, 这样的结果是曲线变宽。

那么我们也可以知道 如果 换成 f(x) = x^2 * 2, 当x=2,y等于4,曲线会变窄。

如果除以的数变成了负数,开口就会向下

由上面我们可以得到一个可以控制曲线开口大小的函数

 

也可以换算到 f(x) = x^2 / t 当t 大于0,曲线开口向上,t小于0,曲线开口向下

左右偏移控制

现在我们可以控制开口大小,那么怎么样控制曲线左右移动呢?

假设左右偏移量是P

设函数 f(x) = (x - P)^2,P = 1 得到下面的表格:

x=   -2 - 1   -1 - 1   - 1   - 1   - 1   3 - 1  
y=   9   4   1   0   1   4  

还是用图像,大概长这样:

【前端】 在前端利用数学函数知识+box-shadow解波浪图形

 

 

可以看到,P的取值影响图像的左右偏移

上下偏移控制

控制上下偏移,实际上就是控制函数 f(x) = x ^2的值y的大小,只需要将   f(x) = x ^2 - H  就可以控制上下啦

假设上下偏移量是H

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wsxfzy.html