前言

看了前两天小米发布的全新LOGO,相信大多数人反应和我一样,啊啊???就这!!!。然后我又从网上翻出了小米聘请的日本国际设计师原研哉,对于设计小米新的LOGO设计理念的诠释。看完这句话第一反应就是果然是知名设计师人家这个设计理念比单纯的设计值钱,这200W不亏!!然后我转念一想那这样我也行,我没有200w的思想还不能比葫芦画瓢吗?!于是我着手用css实现一波,给朋友炫耀炫耀。

说干就干

这不很简单吗,网上这么多说其实就是一句border-radius的事,分分钟钟给他画出来。但是真的是这样的吗,总是感觉事情没这么简单。于是我现用网上的方法画了一个LOGO,效果如下:

看出什么问题了吗?你说这不一样吗都是圆角矩形啊?没关系接下来我们把它和小米的LOGO放到一起看一下。

看出来了吗?对!!没错!!被你发现了,小米的圆角矩形是平滑圆角的。那问题来了,这样的话如何用css完成呢?难道只能贴图片了吗?不!!答案是否定的,其实还有个有趣的东西,那就是“Painting API”。
通过Painting API它允许你再css中调用paint函数,然后通过JavaScript定义一个Paint Worklet来加载你注册的画板,其实就是你通过JavaScript来画出你想要得到的任何图形。具体介绍可以查看这几位大佬的文章:
https://juejin.cn/post/6945819749293129759
https://zhuanlan.zhihu.com/p/30829138
https://www.zhangxinxu.com/wordpress/2018/11/css-paint-api-canvas/

步入正题

  • 首先定义css和html
<div class="box"></div>
 .box {background: #ff6900;-webkit-mask-image: paint(smooth-corners);width: 100px;height: 100px;}
  • 在页面上将JS作为模块引入
(CSS.paintWorklet || paintWorklet).addModule("./smooth-corners.js");
  • 重点来了:在"smooth-corners.js"文件中注册paint,绘制图形
registerPaint('smooth-corners', class {paint(ctx, size) {ctx.fillStyle = 'black'// n=4 时,绘制一个方圆形     const n = 4let m = nif (n > 100) m = 100if (n < 0.00000000001) m = 0.00000000001const r = size.width / 2const w = size.width / 2const h = size.height / 2ctx.beginPath();for (let i = 0; i < (2*r+1); i++) {const x = (i-r) + wconst y = (Math.pow(Math.abs(Math.pow(r,m)-Math.pow(Math.abs(i-r),m)),1/m)) + hif (i == 0)ctx.moveTo(x, y)elsectx.lineTo(x, y)}for (let i = (2*r); i < (4*r+1); i++) {const x = (3*r-i) + wconst y = (-Math.pow(Math.abs(Math.pow(r,m)-Math.pow(Math.abs(3*r-i),m)),1/m)) + hctx.lineTo(x, y)}ctx.closePath()ctx.fill()}
})

这样一个类小米LOGO的平滑圆角矩形就绘制完成了,效果如下
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-KccanjaU-1617334120564)(/img/bVcQ0kp)]

总结

本文其实主要通过这个案例想说,有些事物看似简单但是内部的艰辛和繁杂是其他人无法想象的,正如小米LOGO的设计理念,LOGO不单单是形态上改变更是赋予了一种动态的活力。要想完成一个平滑圆角不仅仅是一句border-radius就能完成的事情,在平时的做人处事上亦是如此。看待事物要有自己的想法深度思考,不能人云亦云。好了好了…扯多了。就说到这吧。

小米的200万不是这么好挣的!相关推荐

  1. 小米200万的新LOGO 一行代码就能修改?

    价值200万的小米新LOGO 近期小米花费200万设计新LOGO事件登上热搜,网传一行代码即可修改,咱们来尝试一下. 1.原LOGO css样式如下: img {width: 55px;height: ...

  2. 一行代码值 200 万?雷军公开小米新 Logo 引吐槽

    今年是小米成立的第 10 年,从最初的 10 几个人创始团队,发展到如今的 3 万多员工. 为了迎接第十年,雷军透露在三年前(2017年)市场部同事曾建议他"升级品牌识别系统,先从 logo ...

  3. 价值200万的小米LOGO给UI设计师带来了什么?

    这几天小米更换logo的消息火遍全网,一个logo价值200万,作为设计师你认为这个logo有哪些可以借鉴的地方呢? Alive的设计理念 害,不管怎么说,我们先来看看这次原研哉老师设计的理念究竟是什 ...

  4. 「话题」为什么微信、钉钉撤回消息的时限不同?小米200万改LOGO值不值?

    本周共有3个话题: 对于消息撤回,微信限制2分钟内,钉钉.企业微信限制24小时内,怎么看待这种区别? 你觉得直播中的打赏对应马斯洛需求理论的哪一层?为什么? 小米的logo直角变圆角,值不值200万? ...

  5. 聊一聊:你觉得这个新Logo值200万吗?

    今天小米正式发布了他的新logo,再一次刷新了大家对设计的认识,很多人纷纷吐槽真是人傻钱多!! 究竟是怎么样的设计让人这么吐槽呢? 我们来看下小米原来的logo: 再看下新的logo: 唔..小编的第 ...

  6. 苹果因不带充电器被罚款200万美元;杨笠代言英特尔被抵制,品牌方连夜下架;Linux考虑加入对Rust的支持 | 极客头条...

    「极客头条」-- 技术人员的新闻圈! CSDN 的读者朋友们早上好哇,「极客头条」来啦,快来看今天都有哪些值得我们技术人关注的重要新闻吧. 整理 | 丁恩华 出品 | CSDN(ID:CSDNnews ...

  7. 爬了知乎 200 万数据,图说程序员都喜欢去哪儿工作

    点击上方"CSDN",选择"置顶公众号" 关键时刻,第一时间送达! 因为最近和朋友吃饭,大家都到了大三季,都在纠结自己该以哪里作为自己职业发展的起点?也想看看自 ...

  8. 20万赚200万,48岁创业者是这样吊打小鲜肉的!

    记者 | Aholiab 出品 | CSDN.区块链大本营 说起吴思进这个名字,想必知道的人并不多,但如果说起他一手建立的33复杂美,干过区块链的都会情不自禁地竖起大拇指. 在区块链应用场景不明确,技 ...

  9. autojs之200万logo自己做

    使用场景 200万的logo, 自己动手实现 效果展示 autojs版本 原理 修改img控件的cornerRadius属性的值 代码讲解 UI 一个图片控件img显示logo 一个进度条用于调整圆角 ...

  10. 总奖金 200 万的 AI Challenger 开赛,可申请免费 GPU 资源

    记者 | 周翔 8 月 14 日,创新工场.搜狗和今日头条联合宣布共同发起"AI Challenger 全球 AI 挑战赛".其中,CSDN 作为选手社区,为大赛提供支持.(更多赛 ...

最新文章

  1. 【Linux 内核 内存管理】Linux 内核堆内存管理 ① ( 堆内存管理 | 内存描述符 mm_struct 结构体 | mm_struct 结构体中的 start_brk、brk 成员 )
  2. 去百度,还是去创新工厂
  3. 构造函数 Create 与 析构函数 Destroy
  4. Android屏幕大小适配问题解决
  5. 利用Python对文件进行批量重命名——以图片文件为例
  6. BugkuCTF-WEB题GET和POST
  7. python多线程爬虫框架_普通爬虫vs多线程爬虫vs框架爬虫,Python爬对比
  8. JQuery Mobile - 固定住页面和页脚
  9. Android 如何在一个Activity中合理地显示多种类型的checkBox
  10. win10 tensorflow 和numpy兼容性问题 No module named ‘numpy.core._multiarray_umath‘
  11. PMP培训一般是多久?怎么收费?
  12. 漫步数学分析二十七——Stone-Weierstrass定理
  13. Visa在全球范围内增加对女足的投入
  14. 全排列、排列组合(去重区别)
  15. 【文献调研】SLAM方向综述性论文
  16. Verilog HDL系统任务说明语句task
  17. 腾讯云游戏云服务器具有哪些优点
  18. 没有一颗凑数镜头,拍照最佳的三款手机,均是影像机皇标准
  19. 最新安卓导航装车作业
  20. springboot o.a.tomcat.util.scan.StandardJarScanner : Failed to scan [file:/D:/apache-maven-3.0.5

热门文章

  1. 操作系统面试题(史上最全面试题,精心整理100家互联网企业,面试必过)
  2. 科比投篮选择——数据采集
  3. 【市场调查与预测】廊坊师范学院大学生洗发水使用情况调查(课程论文)
  4. Oracle RAC Failover 说明
  5. Excel计算工作日的公式
  6. windows 磁盘被写保护怎么办
  7. 生前个个说恩深,死后人人欲扇魂。画虎画皮难画骨,知人知面不知心。
  8. CVX示例库之多面体的Chebyshev中心
  9. 大学物理实验长度的测量实验报告_长度测量实验报告.doc
  10. 大学一年级计算机应用课程,计算机应用*的课程教学计划