数学思维+C语言画小猪佩奇,来试试?

用C语言画小猪佩奇,

你能想到什么实现方式?

No, no, no~

让我们玩点生猛的。直接编辑代码,

用命令行(CMD)编译及运行!

(此处安利Sublime,瞬间提升逼格的神器)然而,

CMD只能显示字符

(不依赖第三方软件的话)

难道……对

没错

你没有想错

让我们来用ASCII码画图!以下是步骤:当然不是了!!要学会魔法,

我们还要了解一些基础知识。

(突然正经分割线)GIF显示图案没有颜色的地方,输出空格

有颜色的地方,输出“.+!=#@”等符号。

(这里不是乱码)眯上眼睛看符号矩阵

是不是能分出不同的灰度?GIF计算图形字符输出的行和列,

我们可以看成是坐标轴。很自然的,小编给大家推荐一个学习氛围超好的地方,C/C++交流企鹅裙:【 六二七,零一二,四六四 】适合在校大学生,小白,想转行,想通过这个找工作的加入。裙里有大量学习资料,有大神解答交流问题,每晚都有免费的直播课程

我们引入平面几何。由一条直线分割开的平面说明

为了让输出的图形符合我们对象限的认知,y从1到-1,而x从-1到1;

由于每一个所占的空间不是正方形,而是矩形,因此行和列(x轴和y轴)的步长不同GIF由多条相交直线分割开的平面:GIF由两条平行直线构成粗线GIF理论上,

这样的操作能把所有图形画出来,

即使是曲线也可以通过化曲为直绘制

(毕竟都是像素点了-_-||)虽然这种方法可以表示曲线

但为免太过繁琐

既然我们把行列看作坐标,

那就用平面几何的方式来解决吧!(椭)圆GIF(效果差,看不出来)(椭)圆面:GIF(椭)圆环GIF双曲线的内部GIF爱心曲线GIF我再略施魔法GIF拿去表白吧~形体组合GIF这个时候,

我们就可以为小猪佩奇

拟合一些基本平面几何元素,

经过一系列的组合

就可以勾勒出小猪佩奇的形状了。

先试试简单形体的组合两个(椭)圆形的组合GIF如果有n个(椭)圆组合的话,

岂不是要写n个这样的语句……No,no,no~

当然是再写一个函数了我们引入符号距离函数

SDF,SignedDistance Function)。说明

x表示一个点,Ω表示某个形状,∂Ω表示这个这个形状的边界。d(i,j)是距离函数。

也就是说,如果某个点在形状外,则返回该点和边界的距离(d),反之,则返回距离的相反数(-d)。这样一来,

我们不但能够判断点是否在形状里

还能额外获得该点与边界的位置关系。你知道这意味着什么吗?

我们可以直接画描边的形状!!!好的,来实践一下。

先来绘制一个描边的圆形。

(因为圆形的边界距离函数最好表示)描边的圆GIF图形的补集GIF多个描边图形的(即多个SDF值取最小)GIF用这种方式可以拼出佩奇的吹风机头多个描边图形的(即多个SDF值取最大)GIFGIF用这种方式可以拼出佩奇微笑的嘴到这里就够了吗?追求完美的我们,

怎么可能止步于此呢!描边的优化GIF可以看到,

不同方向的边线,

如果能够用“|/=\”表示,

就会好看很多。比如,这样:

===

//................\\

\\................//

===我们再引入SDF函数的梯度

用atan2求出梯度的角度

来表示边线法线的方向。

我们用差分来求近似值。GIF发挥想象力,

组合形状,比如福禄用各种圆形

交、并、求补、挤压、旋转,

锵锵锵锵!~GIF完整代码:编译运行时

更改a的大小

可实现更改精致程度。GIF每天改变一点点,

做精致的猪猪女孩。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 217,509评论 6 504
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,806评论 3 394
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 163,875评论 0 354
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,441评论 1 293
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,488评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,365评论 1 302
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,190评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,062评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,500评论 1 314
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,706评论 3 335
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,834评论 1 347
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,559评论 5 345
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,167评论 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,779评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,912评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,958评论 2 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,779评论 2 354

推荐阅读更多精彩内容