Python Turtle 画图:黑洞里的繁星(附源代码)
Posted margaret_wong
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python Turtle 画图:黑洞里的繁星(附源代码)相关的知识,希望对你有一定的参考价值。
仰望星空,总想看到不一样的星辰。本文就介绍如何利用Turtle 绘画浩瀚宇宙黑洞里的繁星,Turtle是python一个简单好用的绘图包,它可以通过设计坐标来实时控制绘图,易学易用。让我们一起去看星星,体现宇宙与计算机之美。
目录
前言
"天高地迥,觉宇宙之无穷" 人在宇宙,好像太空中一粒沙子那么渺小。 仰望星空,总想看到不一样的星辰。本文就介绍如何利用Python Turtle 绘画浩瀚宇宙黑洞里的繁星,体现宇宙与计算机之美,让我们一起去看星星。
一、Python Turtle是什么?
turtle是python一个简单好用的绘图包,它可以通过设计坐标来实时控制绘图。安装很简单,一行命令:
pip install turtle
二、绘图步骤
1.引入库
import turtle as t
import random
2. 创建画板,画笔和颜色
t.setup(800,600)
t.colormode(255)
t.bgcolor('lavender')
t.speed(0)
colorlist=['silver','lightgoldenrodyellow','floralwhite',
'slategrey','lightsteelblue','pink']
colorback=['lavender','lightsteelblue']
randomColor=['pink','lavender','lightsteelblue','silver',
'lightgoldenrodyellow','floralwhite','slategrey']
angle=60
3.绘画大星星
3.1 随机效果图如下:
3.2 源代码如下:
#画大星星
def drawFiveStar (x,y,angle,step,color):
t.penup()
t.goto(x,y)
t.left(angle)
t.pendown()
t.color(color)
t.fillcolor(color)
t.begin_fill()
for x in range(5):
t.forward(step)
t.right(144)
t.end_fill()
for i in range(50):
step=random.randint(20,40)
x=random.randint(-400,400)
y=random.randint(0,300)
angle=random.randint(0,36)*10
color=random.choice(colorlist)
drawFiveStar(x,y,angle,step,color)
4. 绘画小繁星
4.1 随机效果图如下:
4.2 源代码如下:
#画小星星
for j in range (200):
back1 =random.choice(colorback)
t.bgcolor(back1)
temp1 =random.choice(colorlist)
t.fillcolor(temp1)
t.color(temp1)
t.begin_fill()
temp2 =random.randint(5,15)
li2= [5,7,9]
temp3= random.choice(li2)
for i in range (temp3):
t.forward(temp2)
t.left(180-180/temp3)
t.end_fill()
t.hideturtle()
t.penup()
for k in range(2):
t.left(random.randint(10,120))
t.forward(random.randint(10,50))
5. 画黑洞
5.1 随机效果图如下:
5.2 源代码如下:
#画黑洞
for i in range(600):
t.color(randomColor[i%6])
t.fd(i)
t.rt(angle+1)
三 、黑洞里的繁星效果图
随机效果展示
四、附上完整源代码
# -*- coding: utf-8 -*-
"""
Created on Wed Jul 13 09:03:32 2022
@author: Margaret Wong
"""
import turtle as t
import random
t.setup(800,600)
t.colormode(255)
t.bgcolor('lavender')
t.speed(0)
colorlist=['silver','lightgoldenrodyellow','floralwhite',
'slategrey','lightsteelblue','pink']
colorback=['lavender','lightsteelblue']
randomColor=['pink','lavender','lightsteelblue','silver',
'lightgoldenrodyellow','floralwhite','slategrey']
angle=60
#画大星星
def drawFiveStar (x,y,angle,step,color):
t.penup()
t.goto(x,y)
t.left(angle)
t.pendown()
t.color(color)
t.fillcolor(color)
t.begin_fill()
for x in range(5):
t.forward(step)
t.right(144)
t.end_fill()
for i in range(50):
step=random.randint(20,40)
x=random.randint(-400,400)
y=random.randint(0,300)
angle=random.randint(0,36)*10
color=random.choice(colorlist)
drawFiveStar(x,y,angle,step,color)
t.up()
t.goto(0,0)
t.pendown()
#画小星星
for j in range (200):
back1 =random.choice(colorback)
t.bgcolor(back1)
temp1 =random.choice(colorlist)
t.fillcolor(temp1)
t.color(temp1)
t.begin_fill()
temp2 =random.randint(5,15)
li2= [5,7,9]
temp3= random.choice(li2)
for i in range (temp3):
t.forward(temp2)
t.left(180-180/temp3)
t.end_fill()
t.hideturtle()
t.penup()
for k in range(2):
t.left(random.randint(10,120))
t.forward(random.randint(10,50))
t.up()
t.goto(0,0)
t.pendown()
t.color('purple')
t.goto(0,0)
t.down()
t.bgcolor('black')
#画黑洞
for i in range(600):
t.color(randomColor[i%6])
t.fd(i)
t.rt(angle+1)
t.penup()
t.color('white')
t.goto(0,0)
t.down()
t.done()
总结
以上就是今天要讲的内容,本文简单介绍了turtle的使用实例,展示如何使用turtle函数绘画不一样的美。
以上是关于Python Turtle 画图:黑洞里的繁星(附源代码)的主要内容,如果未能解决你的问题,请参考以下文章