码农正确装逼姿势——书法篇
前言
可怜今夕月,向何处,去悠悠?是别有人间,那边才见,光影东头?是天外。空汗漫,但长风浩浩送中秋?飞镜无根谁系?姮娥不嫁谁留?
——宋·辛弃疾
中秋佳节,花好月圆,行书一幅赠与(zhuang)友人(bi)。
我一个程序员,写得了代码不说,还能写一手好字,这么多才多艺的程序员到哪里去找!?
所以这显然是装出来的,我们这类人最擅长的就是利用代码来解决问题,这书法当然是用代码写的。
正文
先放个源码链接,各位可以直接clone然后稍作修改用起来,但记得star一下啊!!
程序完全用python极其标准库turtle写的,先简单介绍一下turtle,如果各位小学有计算机启蒙类课程的话可能还记得这只小海龟,它其实是一个很基础的图形绘制库,主要用来教育小孩进行编程入门学习。他在各个语言内都有实现,而我们今天用的就是它在python语言下的实现。
具体的api各位可以参考官方文档,毕竟给小孩入门编程用的,非常的简单易懂。
实现此程序需要有以下两个功能:
- 写正文与落款:落款其实和正文相同,只是字体大小不一样罢了,因此用同一个函数实现;
- 盖章:因为盖章又分为阴刻和阳刻,具体实现起来还是有些去别的,因此两种盖章方式用两个函数实现。
实现写正文与落款的函数:
1 | from turtle import * |
关于字体,各位可以去网上搜索下载安装(很无脑就不谈了),也可以直接用repo里附带的两个字体
实现阳刻的函数:
1 | def garland(): # 阳刻 |
实现阴刻的函数:
1 |
|
最后,把上面的函数组装起来,机器人变形出发!!
1 | def zhuangbi(): |
效果如下:

Todo
这个程序还有一些缺陷,但是蛮有意思的,简单搜了一下没有发现同类的小程序,所以计划完善一下给他发布成一个微信小程序(为什么又在立flag呢),因此列一下待改善和开发的点:
- 添加交互,将其发布成微信小程序;
- 正文的文字排版不够智能,排版应该能根据输入自动优化;
- 正文和刻章的字体最好能够提供字体列表进行选择;
- 刻章的文字顺序需要手工调整,改为自动根据输入生成;
- 目前只能刻正方形的章,改为可以支持圆形的章;
- 最后生成的结果通过程序只能保存为eps格式,应当改为能够支持生成多种格式;