python用turtle库和random库
时间: 2023-10-24 11:07:18 浏览: 189
可以创建一个随机生成彩色螺旋线的程序。下面是代码实现:
```python
import turtle
import random
# 设置画笔
t = turtle.Turtle()
t.speed(0)
turtle.bgcolor('black')
# 颜色列表
colors = ['red', 'orange', 'yellow', 'green', 'blue', 'purple', 'white']
# 循环绘制螺旋线
for i in range(200):
# 随机选择颜色
color = random.choice(colors)
t.pencolor(color)
# 绘制线段
t.forward(i * 2)
t.right(89)
```
运行以上代码,可以看到屏幕上随机生成的彩色螺旋线。每次循环画笔的颜色都是从颜色列表中随机选择的一个颜色。
相关问题
如何使用Python的turtle库和random库,创建一个包含20个不同特性(如形状大小、颜色、填充、位置和旋转角度)的雪花图案集合,每个雪花图案都是独立且个性化的,并且随机分布?
要使用Python的`turtle`库和`random`库创建一个由20个不同特性的雪花图案组成的集合,你可以按照以下步骤进行:
1. 首先,确保已经安装了`turtle`库,如果没有,请使用pip安装:
```
pip install turtle
```
2. 导入所需的库:
```python
import turtle
import random
```
3. 定义一个绘制雪花的基本函数,这个函数会接受多个参数来控制雪花的特性,如大小、颜色、填充等:
```python
def draw_snowflake(size, color, filled, position, rotation):
t = turtle.Turtle()
t.speed(0) # 设置Turtle的移动速度为最快
t.penup() # 提起笔防止连续画线
t.goto(position) # 移动到指定位置
t.pendown() # 放下笔开始画
# 创建雪花的分支
for _ in range(5):
angle = random.uniform(70, 110) # 随机选择旋转角度
t.left(angle)
t.forward(size)
size /= 2 # 每次分支缩小大小
if filled: # 如果是填充模式
t.fillcolor(color)
t.begin_fill()
else:
t.color(color)
# 关闭填充,如果有必要
if filled:
t.end_fill()
t.right(rotation) # 旋转后回到初始位置
```
4. 创建一个列表,包含20个不同的雪花实例,每个实例都有随机生成的不同特性:
```python
snowflakes = []
for _ in range(20):
snowflake = {
'size': random.randint(10, 100),
'color': random.choice(['white', 'blue', 'purple']), # 随机颜色
'filled': bool(random.getrandbits(1)), # 是否填充
'position': (random.randint(-300, 300), random.randint(-300, 300)), # 随机位置
'rotation': random.uniform(-180, 180), # 随机旋转角度
}
snowflakes.append(snowflake)
draw_snowflake(**snowflake) # 使用字典解包调用draw_snowflake函数
```
5. 最后,显示所有的雪花图案并暂停动画:
```python
turtle.done()
```
用turtle库和random库画粽子
好的,以下是使用turtle和random库画粽子的示例代码:
```python
import turtle
import random
# 设置画笔
t = turtle.Turtle()
t.speed(0)
t.penup()
# 粽子的大小和位置
size = 100
x_pos = -200
y_pos = 0
# 画米粽的米
t.goto(x_pos, y_pos)
t.pendown()
t.fillcolor('#F5DEB3')
t.begin_fill()
t.circle(size/2)
t.end_fill()
# 画粽叶
t.penup()
t.goto(x_pos, y_pos+size/2)
t.pendown()
t.fillcolor('#228B22')
t.begin_fill()
t.left(45)
t.forward(size/2)
for i in range(2):
t.right(90)
t.forward(size)
t.right(90)
t.forward(size/2)
t.right(45)
t.end_fill()
# 画粽绳
t.penup()
t.goto(x_pos, y_pos+size*3/4)
t.pendown()
t.pensize(10)
t.pencolor('#8B4513')
t.right(45)
t.forward(size/4)
t.right(90)
for i in range(4):
t.forward(size/2)
t.right(90)
t.forward(size/4)
t.right(45)
# 随机添加几个馅料(红豆和蛋黄)
t.pensize(1)
for i in range(random.randint(1, 3)):
x = random.uniform(x_pos-size/4, x_pos+size/4)
y = random.uniform(y_pos-size/4, y_pos+size/4)
t.penup()
t.goto(x, y)
t.pendown()
t.fillcolor(random.choice(['#FF4500', '#FFD700']))
t.begin_fill()
t.circle(size/10)
t.end_fill()
# 隐藏画笔
t.hideturtle()
# 等待用户关闭窗口
turtle.done()
```
运行以上代码,将会得到一个随机添加了1-3颗馅料的米粽示意图形。你可以根据自己的需求进行修改和美化。
阅读全文