|
|

楼主 |
发表于 2024-1-9 20:04
|
显示全部楼层
本帖最后由 马黑黑 于 2024-1-9 20:10 编辑
最后略作解释:
父元素(没有设置边框)套的第一个菱形,就是最大的那个菱形,它其实也是一个正方形,其边长计算公式为:
c = √(a²+b²)
因为是正方形,a = b,设 a=ww,则:
c = √(2 * ww²)
用js表示 :
c = Math.sqrt(2 * Math.pow(ww,2))
于是可以设置一个求正方形边长的函数,第21行代码:
var setSize = (ww) => Math.sqrt(2 * Math.pow(ww,2));
然后设计一个全局变量 size,它首先等于父元素宽高任意一边的一半,第22行:
var size = setSize(ma.offsetWidth / 2);
最后,在 8 个菱形的追加语句代码块中(24~36行),每设置完一个菱形,用该菱形的 size 值、通过 setSize 函数改变 size 变量值给下一个矩形使用。
期间,每一个矩形依据是否被 2 整除决定自身是否旋转(第26行、32行)。还有随机背景颜色的赋值(第31行)。
功能是实现了,算法应该不是最优的。 |
|