2022年即将过去,壬寅(虎)年也接近尾声,今天与大家分享于今年春节用Python turtle绘制的虎年祝福图。
海龟绘图(Turtle Graphics)是Python内置模块,是非常简单好玩的一个库。其动作主要有:抬笔,此后的动作只是移动画笔,画布上不会留下痕迹;落笔,只要移动画笔,画布上就会留下痕迹。画笔动作只绝对移动、相对移动、向前(后)移动、转向(绝对角度、相对角度)、圆或圆弧、点(实心圆),故画不了椭圆,绘制函数曲线困难。
一、导入库
import turtle
或
from turtle import *
二、turtle绘图
1. 设置画布大小
turtle.screensize() # 返回默认大小(400, 300)
以默认绘图窗口大小显示窗口,窗口居屏幕中心。
turtle.screensize(width, hight[, bg])
其中:width——表示画布宽度(单位像素)
Hight——表示画布高度(单位像素)
bg——画布背景颜色,该参数可缺省,缺省时为白色背景
如:turtle.screensize(800, 600, "green"),表示画布大小为800×600,绿色画布。
turtle.setup(width, hight[, x, y])
其中:width, height——表示画布宽和高。当为整数时表示像素;为小数时则表示占据计算机屏幕的比例
(x, y)——这一坐标表示矩形窗口左上角顶点在屏幕的位置(像素),如果缺省则窗口位于屏幕中心
图1为turtle坐标系如图1所示,画布上默认有一个坐标原点为画布中心的坐标轴,,水平x轴向右为正方向,垂直y轴向上为正方向,初始坐标原点上有一只面朝x轴正方向小海龟(海龟形状(turtle.shape)有六种、可显示可隐藏)。
2. turtle绘图的基本方法
(1) 画笔运动命令
表1 画笔运动命令
(2) 画笔控制命令
表2 画笔控制命令
(3) 全局控制命令
表3 全局控制命令
用Turtle绘图主要用直线、转角、圆(圆弧)、点绘制。所以绘图时要将图像转换为直线、圆弧去逼近图像轮廓。
三、印章制作
书法作品落款一般用方章,文字可用“某某某印”,外加方框。
常规画方框用四个直线+(90°)转弯绘制,本篇介绍用circle()方法绘制方框,没有错,用Python turtle画圆方法绘制。画圆函数的语法结构如下:
turtle.circle(radius,extent=None, steps=None)
其中:radius为数值,表示圆的半径,如果半径为正则按逆时针方向绘制圆弧,否则按顺时针方向绘制圆弧;extent(可选)为数值,表示从当前位置开始绘制圆的角度,如果缺少则绘制整个圆;steps(可选)为整数,表示分多少段绘制指定角度的弧或整圆(内接多边形)
由于圆是由内接正多边形近似绘制的,因此steps决定要使用的段数。如果未给出,将自动计算。可以用来画正多边形。
四、制作作品
作品分两部分:(1)绘制神虎迎新图;(2)制作书法作品。需绘制“神虎”虎头、虎身、虎手、虎脚和挂轴等;再制作“虎年快乐新春大吉”书法立轴作品,再在左侧添加落款和印章。
由于涉及边界衔接和遮挡,边缘不好处理,故采用分层绘制,先底层,再绘中间层,最后绘制上层,这样上层覆盖下层,可以完善处理边界、边缘。本作品绘制顺序:靴帮→靴底→袍边→袍身→立轴→虎手→虎头,最后文字和落款。
完整的绘制程序如下:
执行结果如下: