今天尝试了用Python代码完成书法作品(包括印章制作和书法写字)。发现了编程与艺术又一个契合点,小开心一下。其实这个过程非常简单。我们先看作品,后讲解代码。
下面我们讲解一下原理和制作步骤。
准备工作:
1.下载并安装相关字体(一般印章用篆体,书法用毛笔体,网上很多可以免费下载);
2.熟悉Python turtle的基本语句(包括write语句)
印章的制作:
画框+输入篆体字。这个过程需要调好坐标,可以在反复尝试的过程中得到最佳结果。要注意印章中字的顺序,同时注意是阴刻(字是白色、背景红色)还是阳刻。阴刻需要先用红色填充在写白色篆字。
毛笔字书写:
调好坐标,用write语句输出即可。如果是竖排文字,每个字后面都要加上换行符‘\n’。
代码如下图所示,上面第一个效果图是action()函数的结果,第二个效果图是action2()函数的结果。
你当然可以在代码中更改字体、字号、颜色、布局,创造属于你自己的书法作品。
几行代码就能完成书法作品,是不是很爽?!
代码附在下面,方便大家拷贝:
from turtle import *
def writeT(mystr,fontsize=60):
pendown()
write(mystr,font=('沙孟海书法字体',fontsize,'normal'))
penup()
def yinzhang():
pensize(2)
pencolor('red')
pendown()
for i in range(4):
forward(56)
left(90)
write('匠一\n人石',font=('经典繁方篆',20,'normal'))
penup()
def yinzhang2():
pensize(3)
pencolor('white')
fillcolor('red')
begin_fill()
for i in range(4):
forward(56)
left(90)
end_fill()
write('匠一\n人石',font=('经典繁方篆',20,'normal'))
penup()
def action():
penup()
goto(30,-200)
writeT('用\n心\n若\n镜',60)
goto(-70,-200) writeT('胜\n物\n不\n伤',60)
goto(-140,0)
writeT('一\n石',15)
goto(-160,-70)
yinzhang()
goto(-160,-140)
yinzhang2()
hideturtle()
def action2():
penup()
goto(30,-200)
write('无\n用\n之\n用',font=('迷你繁篆书',70,'normal'))
goto(-70,-200)
write('是\n为\n大\n用',font=('迷你繁篆书',70,'normal'))
goto(-140,0)
writeT('一\n石',15)
goto(-160,-70)
yinzhang()
goto(-160,-140)
yinzhang2()
hideturtle()