pythonturtle随机⽣成图形_⽤PythonTurtle模块做⼩游戏
(1)-随机移。。。
最近接触到 Python的⼀个绘图模块 Turtle,学习以后,发现这是⼀个很有趣的模块。我们可以利⽤这个模块进⾏画图,甚⾄做⼀些怀旧的⼩游戏。这个模块的⽂档链接如下。
简单的说,可以把画板想象成⼀个X-Y的坐标轴,原点就在中间,⼀个海龟在坐标图⾥⾯到处跑,他的爬⾏痕迹就是我们⽣成的图形。我们可以通过控制坐标的位置,⽅向,颜⾊,基本图形和移动⽅向来创建各种有趣的图案。
⽐如说,我打算⽣成⼀个随机的线路,每次转变⽅向⽤不同的颜⾊表⽰。
from turtle import Turtle, Screen
import random
import colorgram
import turtle as t
#设置颜⾊类型为RGB格式,默认为字符串
tim = Turtle()
#设置⼀个随机的⽅向选择
options=[0,90,180,270]
#⽣成随机的RGB元组
def randomcolor():
r= random.randint(0,255)
g= random.randint(0,255)
b = random.randint(0, 255)
return (r,g,b)
tim.speed('fastest')
#随机选择⼀个⽅向,选择⼀个颜⾊,线条加粗
def randomwalk():
tim.setheading(random.choice(options))
tim.speed('fast')
tim.pensize(10)
tim.forward(20)
for i in range(100):
randomwalk()
screen = Screen()
再⽐如说 我打算⽣成⼀个万花筒,其实就是画圆,每次画圆,偏移⼀定的⾓度,随机⽣成⼀些颜⾊就⾏了from turtle import Turtle, Screen
import random
import colorgram
import turtle as t
#设定颜⾊模式,不然默认是字符串的格式,⽽不是RGB的格式
tim = Turtle()
random python#⽣成⼀个随机的RGB的元组
def randomcolor():
r= random.randint(0,255)
g= random.randint(0,255)
b = random.randint(0, 255)
return (r,g,b)
tim.speed('fastest')
def draw_spirograph(size):
for i in range(int(360/size)):
tim.circle(100)
print(tim.heading())
#每次画圆都偏移⼀下⽅向
current_heading=tim.heading()
tim.setheading(current_heading+size)
tim.circle(100)
draw_spirograph(10)
#下⾯的部分是⽣成⼀个画板界⾯,点击退出,不然默认⼀闪⽽过就没有了
screen = Screen()
效果如下
最后再看⼀个例⼦,如何⽣成了⼀个10X10的 点图。说起点图,最出名的是⼀个叫 Damie Hirst的艺术家,他的点图能卖个上百万美元!! 艺术品⼤概就和下⾯的样⼦差不多。
那么⽤我们的海龟模块,我们可以很轻松的模拟⼀个出来。 ⾸先下载⼀个Damie的⼤作,转换成jpg格式,通过colorgram的模块 我们可以获取到Damie到底使⽤了哪些颜⾊的RGB,保存为⼀个列表,我们就可以随机地获取颜⾊⽣成⾃⼰的点图了。
from turtle import Turtle, Screen
import random
import colorgram
import turtle as t
#设置颜⾊模式为RGB
tim = Turtle()
#从⼀个现有的jpg图获取主要的⾊彩
act('spot.jpg',20)
colorlist=[]
for color in colors:
# b)
colorlist.append((b.b.b.b))
print(colorlist)
#隐藏海龟的⼩图标和画图的路径,设置爬⾏速度为最快
tim.penup()
tim.hideturtle()
tim.speed('fastest')
#因为海龟默认是从原点(图正中央)开始爬,如果内容太多的话可能会爬出边界,所以我先把他的坐标往左下⽅挪⼀挪tim.setheading(225)
tim.forward(300)
tim.setheading(0)
currentlocation=tim.position()
print(currentlocation)
#简单的双重循环,每次⽣成⼀个随机颜⾊的点,唯⼀注意的就是海龟爬的⽅向和坐标了
for i in range(10):
for j in range(10):
tim.dot(30,random.choice(colorlist))
tim.forward(40)
tim.setposition((currentlocation[0]),40*(i+1)+currentlocation[1])
#这个screen的对象保证画板需要⼿动关闭
screen = Screen()
最后效果如下

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。