[ Python学习笔记 ] turtle库的使用 ( 1 )

最近心血来潮,想学python。况且新博客需要大量插入图片,于是敲代码数十小时,遂得此篇。


代码如下:

import turtle

def box(t,x,y,a,b,r):
    t.up()
    t.goto(x-a/2,y-b/2-r)
    t.down()

    for i in range(2):
        t.forward(a)
        t.circle(r,90)
        t.forward(b)
        t.circle(r,90)

def node(t,x,y,a,b,r):
    box(t,x,y+b/2+r,a,b,r)
    box(t,x,y-b/2-r,a,b,r)

if __name__ == "__main__":
    t=turtle.Turtle()

    node(t,0,0,100,50,15)

    turtle.done()

实现效果

一个似像不像的节点


具体思路

节点,需要两个盒子;画盒子,可以画矩形,三角形,正方形等等,这里拿圆角矩形来作示范。
要画圆角矩形,我们需要有五个参数,即 a a a b b b半径 r r r横坐标 x x x纵坐标 y y y
但是有两个细节问题
1. 1. 1. 长是外接矩形的长吗?
2. 2. 2. 横纵坐标是这个盒子的中心吗?
这篇博客中,我们是这么处理的:
1. 1. 1. 长不是外接矩形的长。
2. 2. 2. 横纵坐标是这个盒子的中心。
所以下面的步骤就很好想了,请见下文。


逐行代码解析

一、库的调用

首先要感谢 p y t h o n python python自带的组件里面就有turtle库,再也不需要万恶的 p i p pip pip i n s t a l l install install了,所以我们可以用下面的代码直接调用turtle库:

import turtle

一般地,调用库的方式为import <name>

二、box函数

这个函数是画盒子用的。

def box(t,x,y,a,b,r):
    t.up()
    t.goto(x-a/2,y-b/2-r)
    t.down()

    for i in range(2):
        t.forward(a)
        t.circle(r,90)
        t.forward(b)
        t.circle(r,90)

p y t h o n python python语法:
1. 1. 1. def 函数名name (参数列表list):,自定义函数。
我需要调用五个图形参数外加一个画笔参数
所以下面的函数是这么写的:

def box(t,x,y,a,b,r):
# t->画笔; x->横坐标; y->纵坐标; a->长; b->宽; r->半径

t u r t l e turtle turtle接口调用(这里是平移画笔至想要的位置):
1. 1. 1. up(),抬起画笔,此时画笔不会写下东西。
2. 2. 2. goto(x,y),将画笔沿直线平移到(x,y)
3. 3. 3. down(),落下画笔,此时画笔可以开始写东西。

    t.up()
    t.goto(x-a/2,y-b/2-r)
    t.down()

p y t h o n python python语法:
1. 1. 1. for i in range(2):,一种循环语句,将 i i i 0 0 0执行到 1 1 1
t u r t l e turtle turtle接口调用(这里是画圆角矩形):
1. 1. 1. forward(d),画笔向当前方向走 d d d步。
2. 2. 2. circle(r,rad),画笔向当前方向,以 r r r为半径,向左画一个角度为 r a d rad rad的圆弧。

    for i in range(2):
        t.forward(a)
        t.circle(r,90)
        t.forward(b)
        t.circle(r,90)
三、node函数

定义了一个 n o d e node node函数,这个函数是画节点用的。
函数列表传输了六个变量
t->画笔;x->横坐标;y->纵坐标;a->长;b->宽;r->半径
再调用 b o x box box函数画两个盒子(我真是个天才
具体代码如下

def node(t,x,y,a,b,r):
    box(t,x,y+b/2+r,a,b,r)
    box(t,x,y-b/2-r,a,b,r)
四、main函数

主函数,无需多言
1. 1. 1. 调用turtle.Turtle()获得画笔
2. 2. 2. 调用node(),在合适的位置画出节点
3. 3. 3. turtle.done(),是 t u r t l e turtle turtle图形库的一个方法,用于标志绘图任务的结束,并保持绘图窗口开启,直到用户主动关闭。

if __name__ == "__main__":
    t=turtle.Turtle()
    
    node(t,0,0,100,50,15)

    turtle.done()

后记

懒得写后记 A w A AwA AwA

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值