python turtle库画一个五角星 【Python初学 绘制五角星】

一.常用命令

import turtle #导入turtle库
import time #时间模块
turtle.forward() #向前移动
turtle.right() #顺时针旋转
turtle.up() #提笔
turtle.goto(x,y) #移动笔尖
turtle.down() #落笔
turtle.left() #逆时针旋转
turtle.color() #控制画笔颜色和填充颜色
turtle.fillcolor() #填充颜色
turtle.begin_fill() #开始填充
turtle.end_fill() #结束填充

二.简析

1.用turtle画一个五角星

import turtle
turtle.fillcolor("red")
turtle.up()
turtle.goto(-150,0)
turtle.down()
turtle.begin_fill()
 
turtle.forward(300)  #向前300
turtle.right(144)    #顺时针旋转144°
                     
turtle.forward(300)
turtle.right(144)

turtle.forward(300)               
turtle.right(144)       #重复5次      

turtle.forward(300)
turtle.right(144)

turtle.forward(300)
turtle.right(144)

turtle.end_fill()                            
turtle.done()

2.用turtle画一个五角星

import turtle         #导入turtle库
t = turtle.Pen()
t.fillcolor("red")      #设置填充颜色
t.begin_fill()        #开始填充
for i in range(5):    
    t.forward(300)      #向前移动300
    t.right(180-180/5)   #180-五角星的内角和/5
t.end_fill()         #结束填充
turtle.done()

在这里插入图片描述

三.实战

1.用turtle画一个太极图

在这里插入图片描述

  • 绘制圆形
turtle.circle(radius,extent,step)

radius 是必需的,表示半径,正值时逆时针旋转;
extent 表示度数,用于绘制圆弧,正值时向上,负值时向下;
step 表示边数,可用于绘制正多边形;
extent 和 step 参数可有可无。

  • 代码
import turtle         #导入turtle库
t = turtle.Pen()

# turtle.circle(radius,extent,step)
# radius 是必需的,表示半径,正值时逆时针旋转;
# extent 表示度数,用于绘制圆弧,正值时向上,负值时向下;
# step 表示边数,可用于绘制正多边形;
# extent 和 step 参数可有可无。

# 画大圆
t.fillcolor("black")
t.begin_fill()
t.circle(175,-180)    # 顺时针旋转180°,半径为175
t.circle(350,-180)  # 顺时针旋转180°,半径为350
t.end_fill()

t.fillcolor("white")
t.begin_fill()
t.circle(175,180)     # 逆时针向上旋转180°,半径为175
t.end_fill()
t.circle(-175,180)    # 顺时针旋转180°,半径为175
t.circle(-350,-180)   # 逆时针向下旋转180°,半径为350

# 画小圆  半圆半径的一半为小圆半径
t.up()
t.circle(-43.75,-180)
t.down()
t.fillcolor("black")
t.begin_fill()
t.circle(87.5)
t.end_fill()
t.up()
t.circle(175,180)
t.down()
t.fillcolor('white')
t.begin_fill()
t.circle(-87.5)
t.end_fill()
turtle.done()

猜你喜欢

转载自blog.csdn.net/weixin_45840339/article/details/104717660