如果说,眼睛是心灵的窗户,那么,美瞳就是心灵的彩窗,就像下图中这样。

而我们今天所要挑战的,就是用python画美瞳,而且是五分钟之内画三百副争奇斗艳、各领风骚、绝不重样的美瞳。作为这颗地球上最纯情的少年,我一直抱守着最质朴的信念——美丽,绝不NG!

江湖上一直都有传言,python除了生孩子不会,别的都会!那么,python作为理工男的玩具,程序员的武器,要攻下美瞳这块属于女孩子们的领地,虽然免不了会是一场旷日持久、拉拉扯扯的恶战,也必定会决胜千里、赢得帅气!

最终得到的部分结果,可以先看下图体会一下:

那么,接下来,牛皮吹完了,差不多可以收收心,开始准备干活了。

首先,我们可以看到,美瞳的大致形状是椭圆,从椭圆的中心到外围,颜色是在缓慢地渐变,自然地过渡,这样才会显得比较有纵深感。而这也就决定了,在三维空间中,用渲染椭球的方式来实现这样的视觉效果,是更为可行的。

那么,我们可以绘制椭球了,使用numpy库,用100个经度值、100个纬度值就可以获得10000个位于椭球面上的点,连接起来就是一个闭合的椭球面,绘制过程是通过matplotlib库实现的。代码实现如下:

u=np.linspace(0,2*pi,100)

v=np.linspace(0,pi,100)

x=a*np.outer(np.cos(u),np.sin(v))

y=a*np.outer(np.sin(u),np.sin(v))

z=b*np.outer(np.ones(np.size(u)),np.cos(v))

#cmap指的是配色方案,默认为纯蓝色,可通过matplotlib.cm.cmap_d.keys()获取所有配色方案,alpha指的是透明度

ax.plot_surface(x,y,z,cmap=value,alpha=0.7)

先看一下,效果是这样:

这样看的话,和美瞳的形状是相去甚远的,这是因为我们是从倾斜的角度去看这个椭球的。如果我们从正上方或者正下方看的话,就会发现形象接近了一些。而这只需要加一行代码就可以。

#将视点的位置偏转90度

ax.view_init(90,0)

看着确实还是挺美的,但是还是略显了一点单调和空洞,还是缺少了一些层次感。而要有层次感,光有渐变是不够的,还要有停顿!

为了实现这一效果,我们可以在椭球的Z轴上画一个圆锥。无论是通过圆锥看椭球,还是通过椭球看圆锥,都会发现双方的框架已经合二为一,相爱相杀,眉头解不开的结,命中解不开的解,是你,是你,梦见的就是你!

圆锥曲线的绘制并不算难,均匀地绘制100条直线,每条直线和赤道面的夹角保持相同,代码如下:

for i in np.linspace(0,2*pi,100):

x_yuanzhui=15000000*cos(radians(60))*sin(i)

y_yuanzhui=15000000*cos(radians(60))*cos(i)

z_yuanzhui=10000000-15000000*sin(radians(60))

#linestyle中可以设定线形为破折号

plt.plot([0, x_yuanzhui], [0, y_yuanzhui], [10000000, z_yuanzhui], color='black', linestyle='--')

用ax.view_init(90,0)和ax.view_init(270,0)分别指定视点方向为正北极和正南极,那么,一颗椭球就可以得到两副美瞳。还可以将获得的美瞳保存为PNG图片,用这句代码就可以:

plt.savefig(filename)

在文件夹中看就是酱紫的:

美瞳是心灵的彩窗,而窗户总要开开合合,如果颜色还能变化,那就更能体现出生活的缤纷多彩。我们可以通过imageio的生成gif来实现。代码如下:

for filename in filenames:

images.append(imageio.imread(filePath+"\\image\\"+filename))

imageio.mimsave(filePath+'\\result.gif',images,duration=0.2)

最终的效果就是这样:

用python画圆锥_用python画一幅美瞳,今日份来自程序员的浪漫相关推荐

  1. 用python画一幅美瞳,今日份来自程序员的浪漫

    如果你也想赚钱,实现财务自由,但接触不到优质的人脉和资源,可以到公June浩:成长home,发"资源" ,就会看到我吐血整理的168条保姆级零基础吸金秘籍,跟着我一起亲历毕业5年. ...

  2. 30岁学python全栈_知乎热帖!戳痛100万程序员:我30岁了,我还能学Python吗?

    " 每个人对如何度过一生有着不同的答案,最重要的不是要不要"开始学习Python",而是认识你自己. --LEWIS " 最近,在知乎上看到关于30岁能不能学P ...

  3. python画春节_过年,大家都在集五福,程序员整理了2018年python学习路线及方法...

    Python是一种解释型.面向对象.动态数据类型的高级程序设计语言.Python由Guido van Rossum于1989年底发明,第一个公开发行版发行于1991年.像Perl语言一样, Pytho ...

  4. 【趣味编程】Python钢琴自动弹奏《月亮代表我的心》| 情人节特辑 程序员的浪漫

    今天是情人节,是时候展现我们理工科的浪漫了. 用Python自动弹奏钢琴曲<月亮代表我的心>,让你身边的她(他)感动到哭. 源码和音频文件,已经为大家打包好了.有需要的朋友私信我,资源拿走 ...

  5. python 人像素描_谁说程序员不懂浪漫的,直接用 Python 给女朋友画张素描

    现在总有人说什么程序员不够浪漫!天真,你以为是真的不够浪漫吗? 其实我们只是没时间而已,每天都这么忙,不是开发程序就是修bug,都要聪明绝顶了, 哪还有精力搞浪漫,不过,等我们有时间了,那就没有你们普 ...

  6. python 假设检验 区间估计_用 Python 实现常用的假设检验

    作者:求知鸟 来源:知乎 开门见山. 这篇文章,教大家用Python实现常用的假设检验!服从什么分布,就用什么区间估计方式,也就就用什么检验!比如:两个样本方差比服从F分布,区间估计就采用F分布计算临 ...

  7. python 时间序列预测_使用Python进行动手时间序列预测

    python 时间序列预测 Time series analysis is the endeavor of extracting meaningful summary and statistical ...

  8. python 概率分布模型_使用python的概率模型进行公司估值

    python 概率分布模型 Note from Towards Data Science's editors: While we allow independent authors to publis ...

  9. python异步教程_【Python 异步编程入门】

    本文是写给 JavaScript 程序员的 Python 教程. Python 的异步编程,其他人可能觉得很难,但是 JavaScript 程序员应该特别容易理解,因为两者的概念和语法类似.JavaS ...

最新文章

  1. 1组合逻辑电路--多路选择器与多路分解器
  2. 谷歌二季度净利同比增211%,英特尔降17%,两个公司盘后股价都大涨
  3. hive in 写法/linux OR CDH如果查看hive的版本
  4. pve远程连接 spcie_proxmox折腾 篇一:解决j3455直通iommu分组问题,PVE内核编译教程...
  5. 基于Spring boot 2.1 使用redisson实现分布式锁
  6. XSS编码问题以及绕过
  7. TCP 三次握手过程详解
  8. select fd_set
  9. C#开发VS LUA开发
  10. 定点c程序之五:定点数的字长效应
  11. python实现ping命令_[小菜随笔]python tkinter实现简单的ping命令
  12. 最优化作业讲解01:标准化线性规划(LP)
  13. FastDFS单机版安装教程
  14. MFC编程之创建Ribbon样式的应用程序框架
  15. 计算机小白可以学python吗_非计算机专业小白如何系统学Python语言
  16. python抛出异常 后如何接住,Python 异常的捕获、异常的传递与主动抛出异常操作示例...
  17. eclipse无法运行PHP_eclipse 无法运行php文件怎么办
  18. Typescript的优缺点和面试题
  19. BZOJ2434【NOI2011】阿狸的打字机 AC自动机+Fail树+树状数组
  20. mysql 页分裂_[翻译] InnoDB 页合并与页分裂

热门文章

  1. js获取所有选中的复选框的值
  2. 【小米商城-1 注册功能】
  3. 目前人工智能的主要研究方向都有哪些?
  4. crc16 c语言 非查表,CRC16CCITT(1021)的16字表长查表程序
  5. 计算机的诞生以及四个发展阶段,计算机发展历史的四个阶段
  6. 解魔方神器开源啦!摄像头看一眼,就能还原全步骤
  7. 一张A4纸打印多张财务凭证(分栏报表)
  8. windows10关闭系统更新方法总结
  9. 关于十七届恩智浦杯安徽赛区基础组参赛分享
  10. ubuntu 12.04下安装adobe flash