前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >用Python写书法作品,WOW!

用Python写书法作品,WOW!

作者头像
一石匠人
发布2018-09-12 09:54:58
3.5K0
发布2018-09-12 09:54:58
举报
文章被收录于专栏:儿童编程

今天尝试了用Python代码完成书法作品(包括印章制作和书法写字)。发现了编程与艺术又一个契合点,小开心一下。其实这个过程非常简单。我们先看作品,后讲解代码。

Python书法作品1

Python书法作品2

下面我们讲解一下原理和制作步骤。

准备工作:

1.下载并安装相关字体(一般印章用篆体,书法用毛笔体,网上很多可以免费下载);

2.熟悉Python turtle的基本语句(包括write语句)

印章的制作:

画框+输入篆体字。这个过程需要调好坐标,可以在反复尝试的过程中得到最佳结果。要注意印章中字的顺序,同时注意是阴刻(字是白色、背景红色)还是阳刻。阴刻需要先用红色填充在写白色篆字。

毛笔字书写:

调好坐标,用write语句输出即可。如果是竖排文字,每个字后面都要加上换行符‘\n’。

代码如下图所示,上面第一个效果图是action()函数的结果,第二个效果图是action2()函数的结果。

Python写书法代码

你当然可以在代码中更改字体、字号、颜色、布局,创造属于你自己的书法作品。

几行代码就能完成书法作品,是不是很爽?!

代码附在下面,方便大家拷贝:

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()

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2018.07.17 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 准备工作:
  • 印章的制作:
  • 毛笔字书写:
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档