本篇以唐王维诗作《鸟鸣涧》为例,介绍Python用turtle制作书法作品。

一、繁体字库安装

书法作品以繁体字为主,图章一般用方篆体或印章篆体,文字一般用小篆、行书、行楷、草书等。本例使用“印章篆体”制作印章,使用“方正小篆体”书写书法主体文字,落款使用“汉仪行楷繁”字体。所以要运行本案例,需要预先下载并安装“印章篆体”、“方正小篆体”和“汉仪行楷繁”三种字体,当然也可以用其他字体替代,但效果会不一样。

二、印章制作

书法作品落款一般用方章,文字可用“某某某印”,外加方框。

常规画方框用四个直线+(90°)转弯绘制,本篇介绍用circle()方法绘制方框,没有错,用画圆方法绘制。画圆函数的语法结构如下:

turtle.circle(radius,extent=None, steps=None)

其中:radius为数值,表示圆的半径,如果半径为正则按逆时针方向绘制圆弧,否则按顺时针方向绘制圆弧;extent(可选)为数值,表示从当前位置开始绘制圆弧的角度,如果缺省则绘制整个圆;steps(可选)为整数,表示分多少段绘制指定角度的弧或整圆(内接多边形)

由于圆是由内接正多边形近似绘制的,因此steps决定要使用的段数。如果未给出,将自动计算。可以用来画正多边形。

常规编程为:

for i in range(4):

tl.fd(d)

tl.lt(90)

用circle()编程为:

turtle.circle(d*0.707,360, 4)

但用circle()绘制多边形时,当前点是其中的一个顶点,所以上述语句绘制出来的是一个菱形,需要预告右转90°,才能绘制正方形。

印章分“阳刻”与“阴刻”,阳刻:外框和文字为印泥颜色、空白处为背景颜色;阴刻:外框和文字为背景颜色、空白处为印泥颜色。

用turtle制作印章时,阳刻用印泥色绘制方框,用背景色填色,再用印泥色绘制文字;阴刻用背景色绘制方框,用印泥色填色,再用背景色绘制文字。参见图1。

印章(左为阳刻、右为阴刻)

三、文字竖排显示输出

turtle绘制文字使用write()方法,语法结构如下:

write(arg, move=False,, font=('Arial', 8,'normal'))

其中:arg为必选参数,用于指定要输出的文字内容,该内容以当前光标所在坐标为左下角输出到屏幕;move(可选参数),逻辑值,指定光标是否跟随,默认为False,不跟随(光标位置不变);align(可选参数)用于设置对齐方式,取'left'、'center'或'right'中的一个,表示左对齐、居中对齐或右对齐,默认为左对齐;font(可选参数)用于设置字体、字号和字型,为三元组(字体名称, 字号大小, 字型)。

说明:如果move设置为True,光标将移动到输出文字的右下角;字型设为'normal'表示正常、'bold'表示粗体、'italic'表示斜体、'underline'表示加下划线等。

由于同字体同字号的汉字的宽度是相同的,所以只要字与字之间加入换行符(\n)用write()方法显示输出时就会显示在同一列上。

str = '这是个测试'

str = '\n'.join(list(str))

write(str, font=('汉仪行楷繁', 36))

2 文字竖排效果图

四、制作书法作品《鸟鸣涧》

唐王维《鸟鸣涧》诗为五言四句:

人闲桂花落,夜静春山空。

月出惊山鸟,时鸣春涧中。

竖排基本上呈方形,用“团扇”格式表达比较合适。先绘制圆形“团扇”,再在其上从右到左书写《鸟鸣涧》四名诗,在左侧添加落款和印章。

完整的制作程序如下:

############################################
# 设计 Zhang Ruilin  创建 2021-12-15 07:26 #
# Python用turtle制作书法作品——《鸟鸣涧》 #
# 要运行本程序并产生书法效果,您的电脑需要 #
# 安装印章篆体、方正小篆体和汉仪行楷繁字体 #
############################################
import turtle as tltl.setup(600,600)
tl.bgcolor('ivory')               # 象牙色,作品装裱色
bgcolor = 'wheat'                # 小麦色,作品背景色
tl.dot(550, bgcolor)def downwards(_str,_font,_size=45):        # 文字转竖排,从上向下显示_words = list(_str)               # 字符转列表_str = '\n'.join(_words)          # 列表连接成字符串tl.write(_str,font=(_font,_size,'normal')) # 竖排显示输出def yin(_word='red',_back='white'):               # 绘制印章,_word印章颜色,tl.pensize(1)                # _back印章背景色,控制_wordtl.color(_word,_back)            # 和_back可产生阳刻和阴刻效果tl.begin_fill()tl.rt(45)tl.pd()tl.circle(20,steps=4)tl.end_fill()tl.lt(45)tl.fd(3)tl.write('瑞\n林',font=('印章篆体',10,'normal'))tl.fd(13)tl.write('张\n印',font=('印章篆体',10,'normal'))tl.pu()if __name__ == '__main__':tl.pu()tl.goto(150,-160)downwards('人闲桂花落','方正小篆体',45)tl.goto(70,-160)downwards('夜静春山空','方正小篆体',45)tl.goto(-10,-160)downwards('月出惊山鸟','方正小篆体',45)tl.goto(-90,-160)downwards('时鸣春涧中','方正小篆体',45)tl.goto(-150,-100)downwards('鸟鸣涧诗 唐王维','汉仪行楷繁',15)tl.goto(-180,-150)downwards('辛丑年冬月瑞林制作于杭州','汉仪行楷繁',15)tl.goto(-155,-135)yin('red',bgcolor)tl.goto(-155,-170)yin(bgcolor,'red')tl.ht()
tl.done()

执行结果如下:

3 由上述程序生成的书法作品《鸟鸣涧》

当句子比较长时,可以布局为楹联格式,如图4所示。

图4 书法作品《易经第一卦》

Python turtle制作书法作品——《鸟鸣涧》相关推荐

  1. 使用 Python Turtle 制作贪吃蛇游戏

    贪吃蛇游戏是一款于 1976 年由格雷姆林工业(Gremlin Industries)开发,并由世嘉游戏(SEGA)发行的街机迷宫游戏.这款游戏曾经登上多款诺基亚黑白机,对上世纪的玩家来说颇有怀旧感. ...

  2. python函数绘制表格_练习:使用python turtle制作表格

    Turtle库是Python语言中一个很流行的绘制图像的函数库,想象一个小乌龟,在一个横轴为x.纵轴为y的坐标系原点,(0,0)位置开始,它根据一组函数指令的控制,在这个平面坐标系中移动,从而在它爬行 ...

  3. python+turtle制作一个生日蛋糕

    话不多说,直接上代码 import turtle as t import timet.fillcolor("#FFFFCC") t.begin_fill() t.penup() t ...

  4. python turtle 画老鼠,python用turtle制作一个猫捉老鼠游戏

    CSDN网友写的猫捉老鼠游戏代码 看着不错 大家借鉴一下 import turtle import time import random def up(): jerry.setheading(90) ...

  5. python turtle循环图案-有趣的Python turtle绘图

    原标题:有趣的Python turtle绘图 Python Turtle是Python的一个编程教育类库,越来越受到教育者的关注,近日,以"智能时代,逐梦成长"为主题的第5届全国青 ...

  6. Python Turtle 小项目 8 各种音符的绘制

    本次,我们将继续使用Turtle模块进行绘制,下面将教学如何绘制各种音符 一.一个四分音符 效果: 代码讲解: 1.导入模块 from turtle import * 2.设置属性 pensize(4 ...

  7. 使用Python turtle快速实现七夕情人节礼物

    马上就到一年一度七夕节啦,如何节碳环保而出奇的向心上人表达心意呢?答案当然是亲手制作视频/卡片/动画类啦,只要有足够的创意,加上技术过硬,效果好到无上限. 今天我就浅浅的使用Python turtle ...

  8. python创意绘图-有趣的Python turtle绘图

    原标题:有趣的Python turtle绘图 Python Turtle是Python的一个编程教育类库,越来越受到教育者的关注,近日,以"智能时代,逐梦成长"为主题的第5届全国青 ...

  9. 巴斯光年python turtle绘图__附源代码

    巴斯光年python turtle绘图__附源代码 本文目录: 一.python turtle海龟绘图效果图 写在前面的题外话 二.绘图人物简介 三.代码演示方法和代码命令解释 四.怎么才能正常运行p ...

  10. python turtle画滑稽表情_python使用turtle库绘制奥运五环

    python使用turtle库绘制奥运五环 Turtle库是Python语言中一个很流行的绘制图像的函数库,想象一个小乌龟,在一个横轴为x.纵轴为y的坐标系原点,(0,0)位置开始,它根据一组函数指令 ...

最新文章

  1. Ubuntu 和 Redhat / Fedora 服务管理命令对比表(附Fedora16新的服务管理工具systemctl )...
  2. python 获得github代码库列表
  3. DL之BM:BM的前世今生
  4. Maven settings.xml配置Nexus
  5. Python和xml简介
  6. LRU和LFU的区别
  7. 【C语言】创建一个函数,判断某一正整数是否为水仙花数,并调用这个函数找出1000以内所有水仙花数...
  8. 请写出至少五个块级元素_Java 面试题(五)
  9. pyinstaller与anaconda python_python – 在Anaconda安装后运行pyinstaller导致ImportError:没有名为’pefile’的模块...
  10. mysql 苏勇_30.每日一个Linux命令----hwclock
  11. MySQL innodb存储引擎的数据存储结构
  12. 一些基础的java编程代码
  13. VINS-Mono 代码解析二、初始化 第3部分
  14. 使用java实现简单推箱子游戏
  15. Leetcode506.Relative Ranks相对名次
  16. HDU6069 欧拉筛法+约数定理+计算技巧。
  17. 惊!成年蚂蚁竟然返老还童!原因居然是。。。。
  18. HTML---表格合并(详解)
  19. Matlab中在一个矩阵后面加apos是什么意思?绘图时出现错误该如何修改,麻烦解答一下,谢谢了
  20. 【区块链论文整理】ICDE 篇

热门文章

  1. linux怎么用命令上传本地文件,Linux 将本地文件上传Linux服务器, 即ssh 命令上传本地文件...
  2. 游戏角色设计具体步骤
  3. [培养锻炼能力][耳机]耳机线断裂维修经验
  4. Python 内置函数dir()与对象的特殊属性以及一切都是对象的轻谈
  5. 版本管理工具-SourceSafe
  6. 【rzxt】详细了解taskmgr.exe进程的基本信息
  7. VMware安装Ubuntu 21.10
  8. 前端企业级代码规范(巨详细)
  9. 《嵌入式 - 语音识别TWen-ASR-ONE开发笔记》第4章 TWen-ASR-ONE PWM调光
  10. 六爻:占卜记录(By eof)