如何用python绘制一系列三维的逗比风格表情包

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

表情包是当代社交生态中的战略性武器,既托起了友情的小船,又浮起了爱情的巨轮,还载起了亲情的航空母舰。在一个又一个宁静又不乏躁动的夜晚,此起彼伏的“老铁666”、“顶你上去”掀起了一阵又一阵的波澜。当你和别人斗图斗得天昏地暗、地动山摇的时候,你有没有想过,如果有一个三维的逗比表情包,你就可以对别人进行360度的全方位无死角嘲讽了!想到这里,你是不是由衷地在心里发出了豪爽而邪恶的笑声?

就像这样:
豪爽而邪恶的笑声
而现在,python就可以满足你这一不可告人的愿望!照例,我们用到的还是matplotlib的三维渲染。

首先,我们要有一张表情包的图片,最好是长度是宽度的两倍,这样的话,平面图片映射到球体上以后,变形会相对小一些。如果原始图片不符合要求,可以在画图工具里面重新调整大小,像下图这样:
在这里插入图片描述
那么,首先,表情包原图是这样的:
原图
然后,我们重新生成一张长图,长度是上图的六倍,将上图的表情横着摆6个,代码和图片如下:

im=Image.open(r'origin.png')width,height=im.sizeresult=Image.new(im.mode,(width*6,height))for i in range(6):result.paste(im,box=(i*width,0))result.save('result.png')

长图
接着,就是确定图片的显示范围,为了避免图片发生严重的变形,需要将图片映射到“低纬度”地区,我设定的是-pi/8到pi/8的范围。

用下面几行代码确定所有点的坐标:

#1128指的是长图的长度
u = np.linspace(0, 2*pi, 1128 * 1)
#94指的是长图的宽度
v = np.linspace(-pi / 8, pi / 8, 94 * 1)x=a*np.outer(np.cos(u),np.cos(v))
y=a*np.outer(np.sin(u),np.cos(v))
z=b*np.outer(np.ones(np.size(u)),np.sin(v))

下文的最终绘制过程中,我们需要用到plot_surface函数,而该函数中有一个参数是facecolors,这个参数的意思就是为椭球的表面设置RGB值,我们就要在图片的各个像素点的RGB值和椭球表面的点之间建立一一对应的关系。代码如下:

bm=Image.open(r'result.png')
bm=np.array(bm)colors=[]for i in range(bm.shape[1]-1,-1,-1):item=[]for j in range(bm.shape[0]-1,-1,-1):color="#{}{}{}".format(str.zfill(str(hex(bm[j][i][0]))[2:],2),str.zfill(str(hex(bm[j][i][1]))[2:],2),str.zfill(str(hex(bm[j][i][2]))[2:],2))item.append(color)colors.append(item)

最后,colors数组里面存储了所有椭球上面的点的RGB值。将colors赋值给facecolors就可以完成最后的绘制。

最终的结果大概是这样:

环形立体嘲讽表情包

环形立体嘲讽表情包

环形立体星星眼表情包

环形立体smirk表情包

环形立体smirk表情包

其他的表情也都可以试试。
说不定会有意外惊喜的哟。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://xiahunao.cn/news/353657.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

My Note of Diffusion Models

Diffusion Models Links: https://theaisummer.com/diffusion-models/ Markovian Hierachical VAE rvs: data: x 0 x_{0} x0​,representation: x T x_{T} xT​ ( p ( x 0 , x 1 , ⋯ , x T ) , q ( x 1 , ⋯ , x T ∣ x 0 ) ) (p(x_0,x_1,\cdots,x_T),q(x_1,\cdots,x_{T…

如何在html中插入表情包,怎么把表情包插入word

是下表情包已经成为一种流行,在word文档中,添加表情包,会给人一种生动亲切的感觉。那么如何在word中添加表情包呢?下面就来看看小编的方法吧。 表情包有很多种形式,例如动态表情,表情符号,静态图…

Github emoji 表情包大全

传送门:https://www.jianshu.com/p/72a4214764e4 https://www.webpagefx.com/tools/emoji-cheat-sheet/

深度学习了40万个表情,一大波AI 表情包来了

自从有了表情包,跟人聊天时的第一反应,就是去找找看有什么适合的表情。 有一类表情包,形式是文字图,尤其能够精妙地抒发和传递感情。 在这一点上,可能全世界的网友都一样。 好用的表情永远不嫌多,而且似乎总…

进击的巨人有趣表情包

image 下载地址: 进击的巨人_BQB/进击的巨人00001-戴拿.gif image 下载地址: 进击的巨人_BQB/进击的巨人00002-莱纳你坐呀.gif image 下载地址: 进击的巨人_BQB/进击的巨人00003-逐渐变得精彩起来了.jpg image 下载地址: 进击的巨人_BQB/进击的巨人00004-醉酒的等级-尤弥尔希斯…

深度学习的分割方法

FCN:基于深度学习的语义分割模型 语义分割的定义:对像素进行精细化的分类。 用深度学习来解决语义分割,所面临的主要问题是: 早期的深度模型用于分类,输出一维向量,无法分割 深度模型不够精细 动机 如…

中国人民大学与加拿大女王大学金融硕士——人生选对方向很重要

有人说,人生最重要的不是财富、不是荣誉,而是选择一条正确的道路。选择正确的方向,对一个人的成长和事业的成功与否,起着决定作用。有了方向,你前进的每一步都跟接近幸福。在职计划读研的你有了解过中国人民大学与加拿…

有哪些测试框架和工具推荐? - 易智编译EaseEditing

在软件测试领域,有许多测试框架和工具可供选择。以下是一些常见的测试框架和工具的推荐: Selenium: 一个用于自动化Web应用程序测试的流行框架。它支持多种编程语言,并提供丰富的功能和灵活性。 JUnit: 一个用于Java应用程序的单元测试框架…

deepin搭建go开发环境(git、go、neovim、NvChad、Nerd Font)

安装deepin虚拟机 官网下载地址 vmware中记得版本选择是debian 10.x 64位 然后就是一些确认操作,然后就可以了 安装git apt install gedit apt install git git config --global user.name "hello" git config --global user.email hello126.com git c…

Win7下Apploc的正确安装姿势

时隔两年之后WIN7终于再次挂掉。于是重装系统打完补丁之后又遇到了安装Apploc的问题。因为印象中需要使用msiexec来安装才能正常进行,但是却记不得细节了,于是求助Google。得到的结果无论中英文基本如下: 1. Admin权限开个cmd.exe 2. cmd里运…

使用sasjs构建html5 javascript css应用

In our previous articles, we have learnt about the SASjs ecosystem and seen how we can build a SAS app with Angular. 在之前的文章中,我们了解了SASjs生态系统,并了解了如何使用Angular构建SAS应用程序 。 In this article, we will look at ho…

漫漫长夜无限服务器断开,漫漫长夜崩溃问题解决方法 | 手游网游页游攻略大全...

发布时间:2015-11-13 漫漫长夜鹿皮怎么获得 漫漫长夜鹿皮获得方法,漫漫长夜The Long Dark中的鹿皮可以造鹿皮靴.前提当然是需要鹿皮了,那肯定得去杀鹿喽,可这鹿怎么杀呢?感兴趣的一起来看看吧. 引狼杀鹿 你先要等鹿被狼杀死,之后去干掉 ... 标签: 游戏攻略 游戏秘籍 漫漫长夜…

unity自动校准(翻译)

本文只是对那篇老外博客进行了翻译,翻译的不好,自己刚过六级.肯定有很多问题,欢迎同学指出. 原文链接:http://www.paradeofrain.com/2010/07/lessons-learned-in-tilt-controls/ 回顾一下 我想简单粗糙的讲…

vivo 互联网业务就近路由技术实战

一、问题背景 在vivo互联网业务高速发展的同时,支撑的服务实例规模也越来越大,然而单个机房能承载的机器容量是有限的,于是同城多机房甚至多地域部署就成为了业务在实际部署过程中不得不面临的场景。 一般情况下,同一个机房内部的…

进出口跨境电商软件平台系统开发,源码技术架构

一、进出口跨境电商软件平台系统开发需做好相应的前期准备,如确定市场、了解政策、推广宣传等。 欢迎名片沟通探讨 确定目标市场:选择合适的目标市场。需要了解目标市场的消费习惯、政策法规以及竞争情况。 了解海关相关政策:针对不同国家或…

机器学习——集成学习(装袋法Bagging、提升法Boosting、梯度提升决策树GBDT、随机森林RF)

集成学习 集成学习通过构建并结合多个学习器来完成学习任务 集成方法是用多种学习方法的组合来获取比原方法更优的结果 使用于组合的算法是弱学习算法 即分类正确率仅比随机猜测略高的学习算法 但是组合之后的效果仍可能高于强学习算法 即集成之后的算法准确率和效率都很高…

C++,Qt部分面试和笔试题

面试这么多次,C这块基础太差了,乘着还有印象总结下相关的面试问答和笔试题,后续会不断更新内容 目录 问答题1.计算机网络七层体系结构2.C中关键字static和const的使用3.QList和QVector for循环输出速度比较4.构造函数能否为虚函数5.谈谈你对面…

Mysql进阶【1】论述索引,索引数据结构,MVCC

1. ReadView 案例,解释为什么 RR 和 RC 隔离级别下看到查询结果不一致 案例 01- 读已提交 RC 隔离级别下的可见性分析 开启两个回话,会话事务级别都是READ-COMMITED; 操作步骤 开启两个数据库会话,设置事务为提交读事务2查询id1数据&#…

纯净内存清理加速软件(Mem Reduct)

纯净内存清理加速软件(Mem Reduct) 文章目录 纯净内存清理加速软件(Mem Reduct)一、Mem Product是什么?二、使用步骤1.下载2.安装 总结 你还为了加速球还困扰全家桶吗,看看这个!! 一、Mem Product是什么&a…

如何清理占用计算机内存,告诉你如何深度清理电脑内存

在如今这个社会时代中,电脑可以说是人们在日常生活中必不可少的一个工具,电脑对我们的学习和工作都起着非常大的作用。但电脑也有出现问题的时候,比如说电脑内存变得越来越小,遇到该问题是该如何处理呢?当然是进行清理内存啦,今天小编就给大家分享一下清理电脑内存的方法…