卸载autodoodle mobile会影响其他的软件吗?

css-doodle 是一个基于 Web-Component 的库。允许我们快速的创建基于 CSS Grid 布局的页面,以实现各种 CSS 效果(或许可以称之为 CSS 艺术)。后续几篇文章可能都会与之有关。

当然,本文的主角并不是 css-doodle。

CSS本身一直在快速发展更新,标准也与时俱进,各种新特性层出不穷,为了能够使用 CSS 来创造各种布局实现各种形状,除了合理运用及搭配各个属性之外,去理解压榨每个属性的每个细节点也是非常重要的。

本文将介绍一种在 CSS 中借助三角函数绘制曲线图形的小技巧。

首先,回顾一下 box-shadow 这个属性。基本属性用法就是给元素创造一层阴影。

关于阴影的许多细节,可以先看看这篇文章:

再简单提一下,本文会用到的关于阴影的第一个技巧:

使用阴影复制图像/投影图像

当 box-shadow 的第三、第四个参数模糊半径和扩张半径都为 0 的时候,我们可以得到一个和元素大小一样的阴影:

第二个技巧则是,box-shadow 是允许多重阴影的,并且他们的坐标是可以完全掌控的。

是的,我们可以像下面这样给一个元素定义多重阴影,并且利用阴影的第一、第二个参数控制它相对于元素的坐标:div {

在阴影坐标中运用三角函数

在阴影坐标中运用三角函数

继续。接下来,我们尝试在阴影的坐标中引入三角函数。

为啥是三角函数,不是圆的标准方程或者椭圆的标准方程或者其他图形函数呢?当然也是可以的,只是这里借助三角函数的 cos 或 sin 可以实现直接使用 CSS 实现起来很困难的曲线。

带着疑问,先继续向下,假设我们要实现这样一条曲线:

使用 CSS 的话,有什么办法呢?

当然,还有一种办法是本文将提到的使用 box-shadow 及 三角函数。

如果我们有一个 1x1 的 div,它的多重阴影,能够按照像正弦/余弦函数的图像一样进行排布,连起来不就是一条曲线吗?

想法不错,但是 CSS 本身并没有提供三角函数。这里,我们需要借助 Sass 来在 CSS 中实现简单的三角函数。

还好,已经有前人帮忙把这个工作做完了:

简单而言,就是借助,使用 Sass 函数模拟实现三角函数的 sin()、cos()、tan():

由于展开式是无限长的,使用 Sass 函数模拟时,不可能得到一个非常精确的值,但是在日常作图下已经完全够用了,以下是使用 Sass 函数模拟实现三角函数的 sin()、cos()、tan():

由于上面最终计算 sin、cos 泰勒展开的时候,只使用了 20 层循环,所以当传入的值太大的时候,则会产生较大误差。经测试,传入数值在 [-20, 20] 以内,精度还是非常高的。

而以 sin 函数为例,x 取值在 [-π, π] 之间,已经能覆盖所有 sin(x) 的取值范围,所以 [-20, 20] 这个范围是完全够用的,我们只需要尽量让传入的 x 值落在这个区域范围内即不会产生太大误差。

好,铺垫了那么多,接下来使用上述的 sin 函数试一下,假设我们有这样一个结构

我们再借助 Sass 实现一个 50 层的循环,当然其中阴影的 x 坐标使用了 sin 函数:

上面 sin($i / 8),这里除以 8 是为了让整个sin(x) 传入的作用域的取值范围为 [0, 6.25],当而 sin(x) 的作用域为 [0,2π] 时刚好可以画一条完整的单次曲线。这个 8 是可以根据循环的次数不同而进行调整的。


 








 

再进一步,我们可以借助 Sass 的各种颜色函数,实现颜色的变化:

上面,借助了 lighten 这个函数,通过改变颜色的亮度值,让颜色变亮,创建一个新的颜色。

当然,Sass 中还有很多其他颜色函数:

  • darken(color,color,amount):通过改变颜色的亮度值,让颜色变暗,创建一个新的颜色;
  • saturate(color,color,amount):通过改变颜色的饱和度值,让颜色更饱和,从而创建一个新的颜色
  • desaturate(color,color,amount):通过改变颜色的饱和度值,让颜色更少的饱和,从而创建出一个新的颜色;

更多 Sass 颜色函数,可以看看这篇文章:

OK,看看这次的效果:

OK,前面所有的铺垫都是为了在实际的一些创意想法中去使用它。

Web Components 是一套不同的 Web 技术,允许您创建可重用的定制元素(它们的功能封装在您的代码之外)并且在您的web应用中使用它们。

老师,也就是 css-doodle 库的作者,在他的 Codepen 首页背景板中,使用的就是使用上述技巧实现的一副纯 CSS 画作:

我也尝试使用这个技巧,做了一副:

有几点,有必要提一下的。

可以,使用多重 box-shadow 只是因为这样可以更省标签,一个 div 搞定。更甚,愿意折腾,使用多重渐变也是可以的。

2、上述两个 Demo 都是纯 CSS 画出来的吗?

是的。虽然借助了 css-doodle 库,但是本质都是 CSS 代码,只是这个库封装好了很多拿来即用的函数。

额,有没有用是一个哲学问题。至少我觉得还是挺有意思的。  

相信很多人在刚接触前端或者中期时候总会遇到一些问题及瓶颈期,如学了一段时间没有方向感或者坚持不下去一个人学习枯燥乏味有问题也不知道怎么解决,对此我整理了一些资料 想要得到更多的提升和知识想与更多资深大牛一起讨论和学习的话 欢迎加入我的学习交流群

声明:以上例句、词性分类均由互联网资源自动生成,未经过人工审核,其表达内容亦不代表本软件的观点;若发现问题,欢迎向我们指正。

的开发重点是支持快速的实验。因此能够以最小的时延把你的想法转换为实验结果,所以是一个很流行的机器学习和深度学习开发工具。

机器学习算法我们已经使用了10余年了,这些算法并不是很容易掌握和运用。在我看来,这些年最重要的一项进展就是Keras的出现,它让此前被人们认为并不现实甚至遥不可及的人工智能产品实现了落地应用,发挥出它们的价值。

总而言之,Keras是任何想涉足机器学习研发工作的人都应掌握的工具。关于Keras的学习资料,现在网上已经出现了很多。今天我们就分享一下新手入门掌握Keras的学习路径,教你如何通过7步从头开始学习Keras,进而打开深度学习的大门

第一步:神经网络的基础知识

要想使用Keras学习机器学习知识,最好先熟悉神经网络的基础原理。如果不了解,可以看看我们这篇对神经网络的详细解读:

以及这篇对8种神经网络的总结归纳:

第二步:Keras基础知识

首先,到底什么是Keras?了解的最好方式就是阅读Keras官方中文文档主页内容(),一定要特别注意“快速开始:30 秒上手 Keras”部分,这部分内容应该足够让你明白Keras的简单使用方法。

强烈推荐DataCamp计算机专家Karlijn Willems整理的Keras速查表,可以把它下载下来放在手边使用,非常方便。下载地址:

还可以查看她对这篇速查表的详细解释:

最后查看Keras官方文档中关于Keras的***问题,了解如何***Keras:

第三步:Keras概览

机器学习专家Valerio Maggio在PyData London 2017大会上分享了一场叫做“10步掌握Keras”的很棒的演讲。内容包括了详细介绍Keras,与其它机器学习库的比较,已经如何使用Keras。这篇视频绝对值得观看,大概时长90分钟,一定能让你对Keras的理解更深一步。

接着查看Keras文档的如下几个页面,以理解Keras的模型实现方法。

如果你想进一步了解Keras和TensorFlow之间的区别,可以看看Aakash Nain写的这篇博客:

最后,学习关于更改Keras后端的信息,查看文档中的这个页面:

第四步:用Keras迈出一小步

前面掌握了神经网络知识和Keras的基本原理后,我们现在先用Keras做出一点东西,就跟大家使用新的深度学习库时通常的做法一样:实现一个简单的逻辑回归模型。

如果你前面看过我们推荐的Valerio的视频,那么这里你应该知道完成这个任务需要哪些东西。如果没看,可以参考Valerio的这篇演讲的笔记要点,很好地比较了TensorFlow,Theano和Keras的实现代码。如果你只对Keras代码感兴趣,看完Keras部分就OK了。

下方就是Keras部分的代码(摘自Maggie的笔记),从中应该能很清楚的看到如何用Keras实现逻辑回归模型。注意,数据预处理部分已经包含在内:

实现逻辑回归模型只是简单的一小步,下面我们用Keras实现更复杂更有价值的东西——神经网络,且包含一个隐藏层。

首先,确保已经查看了Keras文档的如下页面,主要讲解Sequential模型和网络层。

待熟悉这部分文档后,就开始用Keras实现神经网络。首先可以参看集智的这篇用Keras搭建深度神经网络的教程:

然后跟着这篇讲解用Keras实现一个会玩一字棋游戏的神经网络的教程:

教程中附有代码,跟着敲就行。

等完成以上这四步后,我们接着学习实现更为复杂的神经网络。

第五步:实现卷积神经网络

要想在Keras中实现卷积神经网络(CNN),首先需阅读Keras文档中关于卷积层的部分:

之后可以查看集智的这两篇讲解文章和教程:

机器学习专家Brandon Rohrer的讲解卷积神经网络的这段视频也值得一看:

如果觉得不够,可以搜罗其它关于用Keras实现CNN网络的教程,总之多加练习。

第六步:实现循环神经网络

和前面实现卷积神经网络一样,我们在用Keras实现循环神经网络(RNN)之前,首先阅读Keras文档中关于循环层的部分:

如果对循环神经网络知识不是很熟悉,一定先掌握这部分知识。接着我们学习Chris Albon这篇用Keras实现LSTM网络(RNN中的主要类型)用于文本分类的教程:

了解更多关于循环神经网络的知识,还可以看看Brandon Rohrer的这段讲解视频:

以及集智的这篇讲解用RNN生成超级玛丽关卡的文章:

到了这里,你应该已经对Keras有了很牢固的理解,包括为何用Keras,在哪些情况下用Keras,以及如何用Keras实现多种神经网络架构。现在算得上是Keras老手了,对吧?

不过,我们还是要百尺竿头更进一步,探索更多额Keras话题。建议下一步跟着Keras的官方教程学习:

之后,看看Keras的这篇示例目录,包含了视觉模型实例,文本&序列模型,生成式模型示例等等。

另外,也可以挑战一下自己,学习怎样调试你在前面几步实现的神经网络模型。比如修改优化器,添加网络层,应用激活函数等。或者用Keras指标回过头判定一下你的模型的性能。Keras文档的评估标准部分是个不错的学习去处:

上面就是大家学习和掌握Keras的七个步骤,通过这七步,相信最后你应该能熟练应用Keras。

后面我们会分享针对小白的更为详细具体的Keras入门教程,包括从设置开发环境、***Keras、加载数据集到定义模型、训练模型和评估模型的整个流程,欢迎关注我们。


0806期《人工智能-从零开始到精通》火热报名中!

谈笑风生 在线编程 了解一下?

我要回帖

更多关于 doodle mobile 的文章

 

随机推荐