python内置库turtle绘制有趣图形
2018-08-19 21:57
1296 查看
一:绘制六边形
import turtle t = turtle.Pen() turtle.bgcolor("black") sides = 6 colors = ["red", "yellow", "green", "blue", "orange", "purple"] for x in range(360): t.pencolor(colors[x % sides]) t.forward(x * 3 / sides + x) t.left(360 / sides + 1) t.width(x * sides / 200)
效果:
二:自定义边框
import turtle t = turtle.Pen() turtle.bgcolor("black") sides = eval(input("输入要绘制的边的数目(2-6)!")) colors = ["red", "yellow", "green", "blue", "orange", "purple"] for x in range(100): t.pencolor(colors[x % sides]) t.forward(x * 3 / sides + x) t.left(360 / sides + 1) t.width(x * sides / 200)
效果:
三:带有文字的图形绘制
import turtle t = turtle.Pen() turtle.bgcolor("black") my_name = turtle.textinput("输入你的姓名", "你的名字?") colors = ["red", "yellow", "purple", "blue"] for x in range(100): t.pencolor(colors[x % 4]) t.penup() t.forward(x * 4) t.pendown() t.write(my_name, font=("Arial", int((x + 4) / 4), "bold")) t.left(92)
效果:
四:绘制雪花
from turtle import * from random import * def ground(): hideturtle() speed(100) for i in range(400): pensize(randint(5, 10)) x = randint(-400, 350) y = randint(-280, -1) r = -y / 280 g = -y / 280 b = -y / 280 pencolor(r, g, b) penup() goto(x, y) pendown() forward(randint(40, 100)) def snow(): hideturtle() speed(100) pensize(2) for i in range(100): r = random() g = random() b = random() pencolor(r, g, b) penup() setx(randint(-350, 350)) sety(randint(1, 270)) pendown() dens = randint(8, 12) snowsize = randint(10, 14) for j in range(dens): forward(snowsize) backward(snowsize) right(360 / dens) def main(): setup(800, 600, 0, 0) tracer(False) bgcolor("black") snow() ground() tracer(True) mainloop() main()
效果:
五:绘制科赫雪花
import turtle def coch(size, n): if n == 0: turtle.fd(size) else: for angle in [0, 60, -120, 60]: turtle.left(angle) coch(size / 3, n - 1) def main(): turtle.setup(600, 600) turtle.penup() turtle.bgcolor("white") turtle.pensize(2) turtle.goto(-200, 100) turtle.pendown() level = 3 coch(400, level) turtle.right(120) coch(400, level) turtle.right(120) coch(400, level) turtle.hideturtle() main()
效果:
六:绘制七彩线条
import turtle as t t.setup(1000, 1000) t.pen(shown=False, pendown=False, pensize=10, speed=0) colorlist = [(255, 0, 0), (255, 165, 0), (255, 255, 0), \ (0, 255, 0), (0, 255, 255), (0, 0, 255), (139, 0, 255)] colorlist.reverse() t.fd(-250) t.seth(-40) t.colormode(255) t.pendown() for color in colorlist[:-1]: t.pencolor(color) t.circle(30, 80) t.circle(-30, 80) t.pencolor(colorlist[-1]) t.circle(30, 80 / 2) t.fd(40) t.circle(25, 180) t.fd(40 * 2 / 3) t.done()
效果:
七:绘制太极图
import turtle # 绘制太极图函数 def draw_TJT(R): turtle.screensize(800, 600, "blue") # 画布长、宽、背景色 长宽单位为像素 turtle.pensize(1) # 画笔宽度 turtle.pencolor('black') # 画笔颜色 turtle.speed(10) # 画笔移动速度 TJT_color = {1: 'white', -1: 'black'} # 太极图填充色 1 白色 -1 黑色 color_list = [1, -1] """ 先画半边,再画另一边 """ for c in color_list: turtle.fillcolor(TJT_color.get(c)) # 获取该半边的填充色 turtle.begin_fill() # 开始填充 # 开始画出半边的轮廓 turtle.circle(R / 2, 180) turtle.circle(R, 180) turtle.circle(R / 2, -180) turtle.end_fill() # 结束填充 上色完成 # 绘制该半边的鱼眼 turtle.penup() # 提起画笔,移动不留痕 turtle.goto(0, R / 3 * c) # 移动到该半边的鱼眼的圆上 R/3*c 表示移动到哪边 turtle.pendown() # 放下画笔,移动留痕 turtle.fillcolor(TJT_color.get(-c)) # 获取鱼眼填充色, 与该半边相反 turtle.begin_fill() turtle.circle(-R / 6, 360) turtle.end_fill() # 回到原点,为下一循环的开始做准备 turtle.penup() turtle.goto(0, 0) turtle.pendown() # 绘制文本 turtle.penup() turtle.goto(0, -R - 50) turtle.pendown() turtle.write("太极图 made by kjshen", font=('Arial', 12, 'normal')) if __name__ == '__main__': R = 100 # 太极图半径 draw_TJT(R) input('Press Enter to exit...') # 防止程序运行完成后就自动关闭窗口
效果:
八:绘制五角星
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) input("")
效果:
九:绘制奥运五环
import turtle p = turtle p.pensize(3) p.color("blue") p.circle(30, 360) p.pu() p.goto(60, 0) p.pd() p.color("black") p.circle(30, 360) p.pu() p.goto(120, 0) p.pd() p.color("red") p.circle(30, 360) p.pu() p.goto(90, -30) p.pd() p.color("green") p.circle(30, 360) p.pu() p.goto(30, -30) p.pd() p.color("yellow") p.circle(30, 360) p.done()
效果:
相关文章推荐
- 使用python中turtle库绘制图形
- 使用Python中的Turtle库绘制简单的图形
- Python3使用turtle绘制超立方体图形示例
- Turtle绘制带颜色和字体的图形(Python3)
- python中的turtle库绘制图形
- 利用python中的turtle库绘制图形
- Python图形工具turtle绘制国际象棋棋盘
- 用python绘制漂亮的图形
- opencv-python绘制图形
- Python利用turtle库绘制彩虹代码示例
- Python绘制3D图形
- 【基于C++和Python的Opencv3学习笔记之基本图形的绘制】
- Python内置模块turtle绘图详解
- 第一次用Python和Plotly成功绘制图形
- 用python绘制漂亮的图形
- Python 绘制函数图形
- 2018.4.2(Python)基本图形绘制
- Python基本语法熟悉,turtle图形函数画图
- Python使用matplotlib绘制三维图形示例
- Python学习12_基本图形的绘制