Turtle 随机彩虹

随机彩虹 import turtle as t #导入turtleimport random #导入randomt.colormode(255) #设置颜色

随机彩虹

随机彩虹

import turtle as t #导入turtle
import random #导入randomt.colormode(255) #设置颜色模式
t.pensize(9) #画笔宽度
t.color("white") #初始化画笔白色
t.goto(150,-50) #为了让彩虹居中
t.left(105) #为了让彩虹平衡for i in range(150,350,9): #在150到350之前,每隔9取值a,b,c = random.randint(0,255),random.randint(0,255),random.randint(0,255) #颜色随机生成t.color(a,b,c) #画笔随机取色t.circle(i*(-1)**i,150) #画150度弧线,方向与i相关t.right(90*(2+(-1)**(i+1)))#向右旋转90度或者270度,与i取值相关t.pu() #画笔抬起t.forward(9) #向前移动距离9t.pd() #画笔落下t.right(90*(2+(-1)**(i+1))) #向右旋转90度或者270度,与i取值相关t.hideturtle() #隐藏画笔头
t.done() #结束并保留窗口

实现2:

import turtle as t #导入turtle
import random #导入randomdef pen_set():t.hideturtle() #隐藏画笔头t.colormode(255) #设置颜色模式t.color("white") #初始化画笔白色def pen_random_color():t.color(random.randint(0,255),random.randint(0,255),random.randint(0,255)) #画笔随机取色def R_move(n):#画笔平移t.pu()t.right(90)t.fd(n)t.pd()t.left(90)def arc(n,angle):#画弧t.circle(n,angle)t.pu()t.circle(n,-angle)t.pd()def rainbow(a,b,c,d):#(最小半径,最大半径,彩虹弧度,彩虹宽度或笔宽)pen_set()t.goto(c,-c/2) #为了让彩虹居中t.left(180-c/2) #为了让彩虹平衡t.pensize(d) #画笔宽度for i in range(a,b,d): #在150到350之前,每隔9取值pen_random_color()arc(i,c) #画150度弧线,方向与i相关R_move(d)t.done() #结束并保留窗口def main():rainbow(200,400,150,20)if __name__ == "__main__":main()

实现3:

import turtle as t #导入turtle
import random #导入random
r = random.randintdef pen_set(a,c,d):#(小半径,弧度,笔宽)t.hideturtle() #隐藏画笔头t.colormode(255) #设置颜色模式t.color("white") #初始化画笔白色t.goto(a,-a/2) #为了让彩虹居中t.left(180-c/2) #为了让彩虹平衡t.pensize(d+1) #画笔宽度def pen_random_color():t.color(r(0,255),r(0,255),r(0,255)) #画笔随机取色def R_move(n):#画笔平移t.pu()t.right(90)t.fd(n)t.pd()t.left(90)def arc(n,angle):#画弧(半径,弧度)t.circle(n,angle)t.pu()t.circle(n,-angle)t.pd()def rainbow(a,b,c,d):#(最小半径,最大半径,彩虹弧度,彩虹宽度或笔宽)pen_set(a,c,d)for i in range(a,b,d): #在150到350之前,每隔9取值pen_random_color()arc(i,c) #画150度弧线,方向与i相关R_move(d)t.done() #结束并保留窗口def main():rainbow(r(150,250),r(350,450),r(90,180),r(15,25))if __name__ == "__main__":main()