当前位置: 首页 > 科技观察

前端小伙玩HTMLcheckbox上瘾,会画logo做视频,甚至开源JS库

时间:2023-03-15 22:31:15 科技观察

没想到这么普通的checkbox能玩到这么高!例如,点击复选框,屏幕会像石头扔进水里一样泛起涟漪:设置好初始状态后,就可以开始展示《生命游戏》的进化过程;控制上、下、左、右,还原经典游戏?;是做前端开发的小弟Bryan。他最近在他的网站上发布了一种新的玩法checkbox(复选框)。这个项目在HackerNews上引起了很多网友的评论。高赞的评论已经给孩子们安排的很清楚了~不过面对“为什么要用checkbox,普通pixel就可以达到这个效果”等一些疑惑,有人替Bryan说话:回到事情本身,其实更早今年,他构建了一个名为Checkboxland的JavaScript库。它可以将任何内容呈现为HTML复选框。还有更强大的游戏玩法。说实话,刚刚展示的复选框效果只能称得上是“开胃菜”。不仅仅是简单的动画,日常拍摄的照片、记录的生活vlog也可以成为“复选框”的素材。小弟自己一度认为灵感枯竭,但是在看了一篇关于将图片转换为ASCII的文章后,Bryan将耐克和苹果的logo进行了转换(不推荐迪士尼的logo)。小哥自己也是老二次元了,《Bad Apple》来之不易:后来自嘲“CheckBox佬”的小哥给了checkbox更多的可能性,他扩展了CheckboxlandAPI来加载任何视频并生成复选框版本。下面这张看起来像是进入了《星际穿越》的五维立方体。而此时此刻,如果你打开相机,布莱恩还可以带领你半尺入《黑客帝国》~赶快学起来吧,说不定还能用来画个心形图,成为你的表白工具(不是)!复选框花式游戏的原理是什么?看似炫酷的效果实际制作过程只需要分两步,一步步教你!1.制作原图。2.将图像转换成ASCII文本输出。以水波为例,首先要产生这样的动态水波。要生成它,您需要在以中心为原点的xy平面上创建一个正弦函数。z轴垂直于屏幕外侧,z轴的值转化为灰度,白色为波峰,黑色为波谷。然后让图形计算器desmos上的水波荡漾,第一步就完成了。第二步是将第一步的结果转换成ASCII码输出。这一步的转换主要是将颜色映射为灰度。使用这个公式,即使是彩色图片也只是一个彩色的灰色~GrayScale=0.21R+0.72G+0.07B提取原图的RGB颜色,输出??为灰度:consttoGrayScale=(r,g,b)=>0.21*r+0.72*g+0.07*b;constconvertToGrayScales=(context,width,height)=>{constimageData=context.getImageData(0,0,width,height);constgrayScales=[];for(leti=0;ii!lI;:,"^`\'.';constrampLength=grayRamp.length;constgetCharacterForGrayScale=grayScale=>grayRamp[Math.ceil((rampLength-1)*grayScale/255)];constasciiImage=document.querySelector('pre#ascii');constdrawAscii=(grayScales)=>{常量cii=grayScales.reduce((asciiImage,grayScale)=>{returnasciiImage+getCharacterForGrayScale(grayScale);},'');asciiImage.textContent=ascii;};最后调整一下图片的大小就大功告成啦~详情见文后链接~可以播放了上线了,就在最近的更新中,Bryan表示自己的新天地创作暂时告一段落,不过他不仅留下了复选框新玩法原理的详细介绍,还亲手制作了丰富的演示。这些足够你去探索和创造了。简单的动画,吃蛇,通过摄像头(demo中有webcam)实时生成checkbox版图片……点击试一试,以吃蛇和摄像头为例:点击蛇,键盘上、下、左,以及控制贪吃蛇的权利:点击网络摄像头,打开前置摄像头,就可以看到自己的实时动态:根据网友反馈,打开时好像会黑屏Android系统,但它可以在MacSafari、iPhoneSafari和桌面Chrome上使用。有兴趣的朋友快来试试吧~