天秀!花费 200W 设计的新版“小米”logo,看看用Python怎么绘制?
最终呈现效果
哈哈,咱们在讲述之前,首先看看最终呈现的效果吧,整体来说还是很不错的。
小米 “新” logo背后的数学
前段时间,小米公司发布了一条微博,引发了热议,原来小米换了新logo了。
很多人,都觉得雷总被骗了。说实话,我当时猛地一看,也是很蒙蔽,可能咋们不懂美学,不懂新logo背后蕴藏的文化底蕴吧!
但是,原设计者原研哉说到:最新设计的小米logo,融入了东方哲学的思考,从而提出了一个具有「超椭圆」数学之美的小米新 LOGO,同时还增加了黑色和科技银来作为小米品牌色彩的新搭档。
原研哉还说到:在验证的过程中,用到了一个数学公式。
从上面的公式可以看到,这里有一个n,因此可以知道:上述公式能够绘制出n种类型的超椭圆。而设计者最终推荐使用n=3这一形状。
n=3时的超椭圆公式如下所示,其中x的取值范围为[-1, 1]。
转换以后,可以得到如下公式:
Python绘制新logo流程
① 绘图原理
在正式绘图之前,我们先来讲述一下Python绘制新logo的“绘图原理”。掌握了原理后,剩下的问题就交给代码吧。
- ① 利用 “超椭圆” 公式,绘制一个带填充色的椭圆;
- ② 遍历 “旧logo” 上的像素值,保留白色 “米字” 处的像素值;
- ③ 将带“米字” 的像素值,写入第一步的超椭圆中;
② 重要知识点的普及
关于整个代码,有几个函数需要给大家提一下,为了大家能够很快学习。但是不会讲解得很详细,大家可以根据说明,自行下去查阅相关资料。
- ① plt.fill():用于给图形填充颜色;
- ② plt.axis():用于打开/取消坐标轴展示;
- ③ plt.subplots_adjust()和plt.margins():用于去掉图形外侧多余的留白;
- ④ image.getpixel():用于读取图片的像素值;
- ⑤ image.putpixel():用于在指定坐标位置处,写入像素值;
③ 上代码
首先我们先导入相关库:
import matplotlib.pyplot as plt
import numpy as np
from PIL import Image
接着,利用上面 提到的公式,绘制一个不留白的n=3的超椭圆。
x = np.linspace(-1, 1, 1000)
y = + pow(1-abs(pow(x, 3)), 1/3) # 注意公式的写法
z = - pow(1-abs(pow(x, 3)), 1/3) # 注意公式的写法
plt.figure(figsize=(12, 12)) # 画布大小plt.plot(x, y, color=(255/255, 103/255, 0))
plt.plot(x, z, color=(255/255, 103/255, 0))
plt.fill(x, y, color=(255/255, 103/255, 0)) # 填充颜色
plt.fill(x, z, color=(255/255, 103/255, 0)) # 填充颜色
plt.axis('off') # 不显示坐标轴
plt.subplots_adjust(top=1, bottom=0, right=1, left=0, hspace=0, wspace=0)
plt.margins(0, 0)
plt.savefig('fill.png', transparent=True, dpi=100) # 设置保存图片的透明值
然后,遍历旧logo的像素值,保留 “米字” 那一块儿。将该像素值,写入上面的 “fill.png” 中。有一点需要注意的是:白色的rgb值是255, 255, 255。
image_1 = Image.open('old.png')
image_2 = Image.open('fill.png')w, h = image_1.sizefor i in range(w):for j in range(h):data = image_1.getpixel((i, j))if data == (255,)*4:image_2.putpixel((i, j), (255,)*4)image_2.save('new.png')
参考链接:Python画出小米新logo的轮廓曲线
https://blog.csdn.net/frank_haha/article/details/115361238
获取资源
以上图片和代码,均已打包,大家可以自由获取哦!
- 1. 关注小编
- 2. 申请QQ群:705933274 免费领取
天秀!花费 200W 设计的新版“小米”logo,看看用Python怎么绘制?相关推荐
- Google-优秀移动站点设计10招
Google-优秀移动网站设计10招 1)添加一个醒目的搜索条:在移动终端上,人们希望能够快速找到自己需要的东西 2)把大表格拆分成小块:别搞一个长长的表格页面,上面包含各种输入框 3)允许用户匿名浏 ...
- 2005年度设计软件新版发布回顾
作者: 小珍 原创 出处: 天极设计在线 随着数码技术的普及,现在普通的摄影爱好者对图像处理技术钻研得非常深透,频频发布自己总结出新的使用技巧,文章和精彩作品遍布在各个摄影论坛.于是图像设计领域的20 ...
- Mel滤波器组的设计与实现(基于MATLAB和Python)
Mel滤波器组的设计与实现(基于MATLAB和Python) 1.Mel滤波器组介绍 在语音的频谱范围内设置若干带通滤波器Hm(k),0≤m<MHm(k),0≤m<M{{H}_{m}}\l ...
- 案例:仿小米logo渐变效果练习
一.效果: 仿小米logo 二.布局思路 三.代码: 代码如下(示例): <!DOCTYPE html> <html lang="en"><head& ...
- 设计技巧之:LOGO色彩搭配
设计技巧之:LOGO色彩搭配 设计技巧之:logo色彩搭配 首先来看一个问题. 一个朋友问:暖色调背景配什么颜色? 字体配什么颜色?是不是非得暖色调 暖色调?还是暖色调 冷色调? 比如说金黄色(C:0 ...
- html怎么做小米logo,CSS3:一个标签画LOGO——小米
一个标签做小米Logo 这两天在米家入手了一特贵的周边,一时兴起想用css制作一下它的logo 至于为什么不用ps?因为我 话不多说,先上原图 HTML代码: 先简单分析一波,这个图片可分为三个部分, ...
- 设计一个圆形文字LOGO
LOGO设计 每一个标志都是独一无二的,它们所代表的含义也是不一样的,我们应该不断学习,不断寻找新的灵感,去设计不一样的LOGO. 那我们开始啦! 设计上图LOGO教程如下: 1.点击插入字符按钮,输 ...
- 动态网站的制作与设计_【大师活动】设计及制作动态Logo
设计及制作动态Logo Creating an Animated Logo 来一起加入动态设计专家Nikki Kipple和新媒体数字艺术家Andrea Pimentel的设计活动中吧!他们将展示整个 ...
- 【课程设计】基于Taro+React+Springboot+TaroUI+Python爬虫的网络音乐播放小程序详细设计实现
[课程设计]基于Taro+React+Springboot+TaroUI+Python爬虫的网络音乐播放小程序详细设计实现 解决触摸穿透 自定义导航栏 文章目录 项目简介 功能截图 1.用户登录注册 ...
最新文章
- 为什么不记录慢速查询?
- python—函数实例一
- [Groovy] Groovy API
- ICPC-无限路之城
- jsp将鼠标放到那显示信息
- CCF202006-2 稀疏向量
- B+树 范围查询_为什么 MySQL 使用 B+ 树,而不是 B 树或者 Hash?
- 使用epublib自动生成epub文件
- python3.7安装opencv4.1_VS2019+python3.7+opencv4.1+tensorflow1.13配置详解
- 魔兽争霸III背景渊源
- 电力行业数据安全解决方案
- flash 火狐总是崩溃_火狐浏览器经常崩溃怎么办,解决Firefox、Flash假死问题
- Deep Multi-View Spatial-Temporal Network for Taxi Demand Prediction
- C#使用SHA256哈希算法实现简单用户注册与验证
- ICGC:国际肿瘤基因组协会简介
- 怎么判断电脑是32位还是64位呢
- python图片raw转换成jpg
- Logo Grabber 一键快速下载网站Logo 的免费插件
- JavaScript词汇表
- ISO26262:功能安全解决了什么问题?