【16】python使用turtle库绘画

画蛇

import turtle

def drawSnake(rad, angle, len, neckrad):  #
    for i in range(len):
        turtle.circle(rad, angle)   # 画圆 rad:圆半径 angle:圆弧度
        turtle.circle(-rad, angle)
    turtle.circle(rad, angle/2)
    turtle.fd(rad)  # 表示直线爬行,forward, 参数表示爬行的距离
    turtle.circle(neckrad+1, 180)
    turtle.fd(rad*2/3)
def main():
    turtle.setup(1300, 800, 0, 0)   # 甚至窗口宽+高+起始x/y
    pythonsize = 100
    turtle.pensize(pythonsize)   # 设置笔的宽度
    turtle.pencolor("red")  # 设置笔的颜色
    turtle.seth(-40)  # 设置笔的起始角度
    drawSnake(40, 80, 5, pythonsize/2)
main()

""""
python 的调用方式
1:import 库名
调用的时:库.函数名
优点:可以更改函数中函数的名字
2, from 库名 import 函数名

"""


画五角星

顺序结构
    import turtle
    turtle.setup(2000, 2000, 0, 0)
    turtle.pensize(20)
    turtle.pencolor("black")
    turtle.seth(0)
    turtle.fd(400)
    turtle.seth(-144)
    turtle.fd(400)
    turtle.seth(-144-144)
    turtle.fd(400)
    turtle.seth(-144 - 144-144)
    turtle.fd(400)
    turtle.seth(-144 - 144-144-144)
    turtle.fd(400)
循环结构   
    import turtle
    turtle.setup(2000, 2000, 0, 0)
    turtle.pensize(20)
    turtle.pencolor("black")
    turtle.seth(0)
    length = 400
    angle = 0
    for i in range(5):
        turtle.fd(length)
        angle = angle - 144
        turtle.seth(angle)
循环递归函数
import turtle
def drawFivePiontedStar(length, angle):
    """
    Draw five_pointed_star by turtle library
    Initial screen ;width+height+initial position
    Initial pen: font+color
    Drawing line by recursive_function
    :param length: Initial five_pointed_star length
    :param angle: Initial position
    :return: None
    """
    def drawline(length, angle):
        turtle.seth(angle)
        turtle.fd(length)
    turtle.setup(2000, 2000, 0, 0)
    turtle.pensize(20)
    turtle.pencolor("black")
    for i in range(5):
        drawline(length, angle)
        angle = angle-144

if __name__ == "__main__":
    drawFivePiontedStar(400, 0)

【16】python使用turtle库绘画_第1张图片


画树

import turtle
def branch(length, level):
    """
    使用递归函数实现画树
    以没有树杈为例
    起始角度为90°
    向左转换角45°,看有没有树杈(level)
    如果没有,向右转换角90°(-45),看有没有树杈
    如果没有,向右转换45°(0),返回原路
    """
    if level <= 0:
        return

    turtle.forward(length)
    turtle.left(45)
    branch(0.6 * length, level - 1)  # 90
    turtle.right(90)
    branch(0.6 * length, level - 1)
    turtle.left(45)
    turtle.backward(length)
    return


if __name__ == "__main__":

    turtle.left(90)
    branch(100, 3)

【16】python使用turtle库绘画_第2张图片


你可能感兴趣的:(python)