啥是佩奇我用Mathematica画给你看!

RunMews 2023-07-15 17:29:52

火遍全网的《啥是佩奇》8分钟完整版「啥是佩奇?」「我用 Mathematica 画给你看!」最近被一部微电影《啥是佩奇》给刷屏了。如果有人问你,「啥是佩奇」,该怎么办呢?如果你会Mathematica就好办了——「我用 Mathematica 画给你看!」

啥是佩奇——结构分析

我们先来分析一下佩奇的脸部结构:

首先,我们把佩奇的脸拆分成简单的几何结构,然后再用参数方程来描述,最后就可以调用Mathematica中的ParametricPlot命令来绘图了。分析之后,可以发现佩奇的脸主要由圆形、椭圆、抛物线,以及少量不规则形态构成。上图之中,红色曲线表示圆形或椭圆形;蓝色曲线表示抛物线;而红色虚线表示由圆形变换所得的曲线;绿色曲线表示抛物线与圆组合而成的曲线。等等

啥是 Mathematica?

Mathematica 是备受科研人员喜爱的编程工具,它神通广大,详细了解请点下面的链接:

「简洁」又堪比「百科全书」的编程语言,了解一下?

一杯水为何存在:“涌现”与复杂性

用元胞自动机玩音乐?还这么好听!

如何用 Mathematica 窥探质数分布中隐藏的分形规律

数据处理,大物实验的[终极神器]

咳咳下面是代码教程——(视频教程在文末)

参数方程绘制

1.佩奇的脸:首先,我们来绘制整体的脸型,也就是曲线一。这种螺旋变大的曲线,可以当作是圆的一个变体,在不断顺时针旋转的过程中,半径也在不断增大,这样我们就有了第一个曲线(注意,在后面的文章中,变量t的取值范围都是0到1):(1 + t^10){1Cos[\[Pi]/6 - 2\[Pi] (1/16 + 15/16t)], Sin[\[Pi]/6 - 2 \[Pi](1/16 + 15/16t)]}

2.佩奇的下巴:然后,我们再画四号曲线,也就是下巴。这里为了简单,我们用抛物线来绘制。经过几次试错,我们得到了这个曲线:{t*4/5+ 1, 1/3t^2+ 1/7}

3.佩奇的鼻子:最后我们画上猪鼻子,这是一个椭圆加上两个小圆:{1/4 Cos[2 \[Pi] t] + 8/5, 1/3 Sin[2 \[Pi] t] + 7/10}, {1/16 Cos[2 \[Pi] t] + 8/5 - 1/8, 1/16 Sin[2 \[Pi] t] + 7/10}, {1/16 Cos[2 \[Pi] t] + 8/5 + 1/8, 1/16 Sin[2 \[Pi] t] + 7/10}

4.佩奇的眼睛:同样的道理,我们再绘制两个猪眼睛:

5.佩奇的嘴巴:然后我们来画嘴。为了简化,同样用抛物线来绘制佩奇的嘴巴:{t - 1/3, (t - 2/5)^2 - 1/2}

6.佩奇的耳朵:最后,我们来绘制佩奇的耳朵(突然发现佩奇的耳朵和一般的猪不一样啊……)。通过观察,我们可以发现,佩奇的耳朵可以看作是一个在极坐标系中的:

那么我们就可以将它转化到笛卡尔坐标系下,用参数方程来描述。这里再经过几次试错之后,就能得到耳朵的方程:{(3/2 - 2 (t - 1/2)^2) Cos[ t/3 + (2 \[Pi])/3], (3/2 - 2 (t - 1/2)^2) Sin[ t/3 + (2 \[Pi])/3]}, {(3/2 - 2 (t - 1/2)^2) Cos[ t/3 + \[Pi]/2], (3/2 - 2 (t - 1/2)^2) Sin[ t/3 + \[Pi]/2]}

至此,大功告成!

和原图相比,是不是很像呢?

和老爷爷做的佩奇相比,谁更像呢?

附录1:Mathematica源代码ParametricPlot[{(1 + t^10) {1 Cos[\[Pi]/6 - 2 \[Pi] (1/16 + 15/16 t)], Sin[\[Pi]/6 - 2 \[Pi] (1/16 + 15/16 t)]}, {t*4/5 + 1, 1/3 t^2 + 1/7}, {1/4 Cos[2 \[Pi] t] + 8/5, 1/3 Sin[2 \[Pi] t] + 7/10}, {1/16 Cos[2 \[Pi] t] + 8/5 - 1/8, 1/16 Sin[2 \[Pi] t] + 7/10}, {1/16 Cos[2 \[Pi] t] + 8/5 + 1/8, 1/16 Sin[2 \[Pi] t] + 7/10}, 0.15 {Cos[2 \[Pi] t], Sin[2 \[Pi] t] + 0.8/0.15}, 0.15 {Cos[2 \[Pi] t] + 0.6/0.15, Sin[2 \[Pi] t] + 0.9/0.15}, 0.05 {Cos[2 \[Pi] t], Sin[2 \[Pi] t] + 0.8/0.05}, 0.05 {Cos[2 \[Pi] t] + 0.6/0.05, Sin[2 \[Pi] t] + 0.9/0.05}, {t - 1/3, (t - 2/5)^2 - 1/2}, {(3/2 - 2 (t - 1/2)^2) Cos[ t/3 + (2 \[Pi])/3], (3/2 - 2 (t - 1/2)^2) Sin[ t/3 + (2 \[Pi])/3]}, {(3/2 - 2 (t - 1/2)^2) Cos[ t/3 + \[Pi]/2], (3/2 - 2 (t - 1/2)^2) Sin[ t/3 + \[Pi]/2]}}, {t, 0, 1}, PlotRange -> All]附录2:数学表达式轮廓:

鼻子:

眼睛:

嘴巴:

耳朵:

视频小教程:教你用 Mathematica 画小猪佩奇

让苹果砸得更猛烈些吧!


每一个HTML文档中,都有一个不可或缺的标签:<head>,在几乎所有的HTML文档里, 我们都可以看到类似下面这段代码:

html{color:#000;overflow-y:scroll;overflow:-moz-scrollbars}
body,button,input,select,textarea{font-size:12px;font-family:Arial,sans-serif}
h1,h2,h3,h4,h5,h6{font-size:100%}
em{font-style:normal}
small{font-size:12px}
ol,ul{list-style:none}
a{text-decoration:none}
a:hover{text-decoration:underline}
legend{color:#000}
fieldset,img{border:0}
button,input,select,textarea{font-size:100%}
table{border-collapse:collapse;border-spacing:0}
img{-ms-interpolation-mode:bicubic}
textarea{resize:vertical}
.left{float:left}
.right{float:right}
.overflow{overflow:hidden}
.hide{display:none}
.block{display:block}
.inline{display:inline}
.error{color:red;font-size:12px}
button,label{cursor:pointer}
.clearfix:after{content:'\20';display:block;height:0;clear:both}
.clearfix{zoom:1}
.clear{clear:both;height:0;line-height:0;font-size:0;visibility:hidden;overflow:hidden}
.wordwrap{word-break:break-all;word-wrap:break-word}
.s-yahei{font-family:arial,'Microsoft Yahei','微软雅黑'}
pre.wordwrap{white-space:pre-wrap}
body{text-align:center;background:#fff;width:100%}
body,form{position:relative;z-index:0}
td{text-align:left}
img{border:0}
#s_wrap{position:relative;z-index:0;min-width:1000px}
#wrapper{height:100%}
#head .s-ps-islite{_padding-bottom:370px}
#head_wrapper.s-ps-islite{padding-bottom:370px}#head_wrapper.s-ps-islite #s_lm_wrap{bottom:298px;background:0 0!important;filter:none!important}#head_wrapper.s-ps-islite .s_form{position:relative;z-index:1}#head_wrapper.s-ps-islite .fm{position:absolute;bottom:0}#head_wrapper.s-ps-islite .s-p-top{position:absolute;bottom:40px;width:100%;height:181px}#head_wrapper.s-ps-islite #s_lg_img,#head_wrapper.s-ps-islite#s_lg_img_aging,#head_wrapper.s-ps-islite #s_lg_img_new{position:static;margin:33px auto 0 auto}.s_lm_hide{display:none!important}#head_wrapper.s-down #s_lm_wrap{display:none}.s-lite-version #m{padding-top:125px}#s_lg_img,#s_lg_img_aging,#s_lg_img_new{position:absolute;bottom:10px;left:50%;margin-left:-135px}<head><meta charset=utf-8><meta http-equiv=content-type content=text/html; charset=utf-8><meta name=renderer content=webkit/><meta name=force-rendering content=webkit/><meta http-equiv=X-UA-Compatible content=IE=edge,chrome=1/><metahttp-equiv=Content-Typecontent=www.aimssg.cn;charset=gb2312><meta name=viewport content=width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=no></head>.s-ps-sug table{width:100%;background:#fff;cursor:default}.s-ps-sug td{color:#000;font:14px arial;height:25px;line-height:25px;padding:0 8px}.s-ps-sug td b{color:#000}.s-ps-sug .mo{background:#ebebeb;cursor:pointer}.s-ps-sug .ml{background:#fff}.s-ps-sug td.sug_storage{color:#7a77c8}.s-ps-sug td.sug_storage b{color:#7a77c8}.s-ps-sug .sug_del{font-size:12px;color:#666;text-decoration:underline;float:right;cursor:pointer;display:none}.s-ps-sug .sug_del{font-size:12px;color:#666;text-decoration:underline;float:right;cursor:pointer;display:none}.s-ps-sug .mo .sug_del{display:block}
.s-ps-sug .sug_ala{border-bottom:1px solid #e6e6e6}

head标签作为一个容器,主要包含了用于描述 HTML 文档自身信息(元数据)的标签,这些标签一般不会在页面中被显示出来。

...全文
644 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复
一、项目简介 本项目(HF24075 SDFeatureRivertraining)是一套以多路 PWM 多彩 LED 灯光控制为核心的固件方案,基于 PADAUK PMS 系列单片机。方案对蓝、青、粉等多色 LED 进行独立 PWM 调光,实现呼吸、渐变、流水等细腻灯光效果,并支持按键切换与传感器交互。其 PWM 调光结构清晰,是学习单片机 PWM、色彩混合与灯光算法的理想范例。 核心应用场景: 1. 氛围灯 / 流水灯产品开发 2. PWM 调光与色彩混合学习 3. 电子类课程设计 / 毕业设计 4. 灯光艺术与 DIY 项目 适配使用场景:学习练手、毕业设计、课程设计、创业售卖、实操实训,突出实用性与可落地性。 二、硬件核心配置 · 主控芯片:PADAUK(应广科技)PMS 系列 8 位 OTP 单片机 · 外接外设: - 多色 LED 灯组(蓝 / 青 / 粉等多路独立 PWM) - 轻触按键(模式切换) - 传感器(交互触发) · 操控设备: - 机身实体按键操控 三、核心功能介绍 1. 多路独立 PWM 调光:蓝、青、粉等 LED 各自独立占空比控制,实现精准亮度; 2. 呼吸 / 渐变 / 流水效果:通过 PWM 变化曲线营造丰富灯光律动; 3. 按键切换模式:轻触在多种灯效间循环切换; 4. 传感器交互:外部传感信号触发或联动灯光变化; 5. 低功耗设计:闲置进入低功耗,按需唤醒。 6. 参数可配:亮灭周期、渐变速度等可调,便于定制。 四、项目优势与亮点 · 灯光细腻:多路独立 PWM,效果远胜简单开关灯。 · 算法清晰:呼吸 / 渐变实现简洁,易于理解与移植。 · 扩展性强:可轻松增加颜色与模式,适配各类灯饰。 ·

24,678

社区成员

发帖
与我相关
我的任务
社区描述
分享最前沿的前后端,分布式事务,大数据与云计算等技术。同时分享各种面试题以及面试技巧。在这里你可以畅聊技术,畅谈程序人生
社区管理员
  • 大数据小禅
  • 冷环渊
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧