📜  在Python中使用 Turtle Graphics 绘制彩虹

📅  最后修改于: 2022-05-13 01:55:32.731000             🧑  作者: Mango

在Python中使用 Turtle Graphics 绘制彩虹

Turtle 是Python中的一个内置模块。它提供:

  1. 使用屏幕(纸板)绘图。
  2. 乌龟(笔)。

要在屏幕上绘制一些东西,我们需要移动海龟(笔),而要移动海龟,有一些函数,如 forward()、backward() 等。

先决条件:海龟编程基础

使用 Turtle 图形绘制彩虹

在本节中,我们将讨论如何使用 Turtle Graphics 以两种不同的方式绘制彩虹。

方法:

示例 1:

python3
# Import turtle package
import turtle
 
# Creating a turtle screen object
sc = turtle.Screen()
 
# Creating a turtle object(pen)
pen = turtle.Turtle()
 
# Defining a method to form a semicircle
# with a dynamic radius and color
def semi_circle(col, rad, val):
 
    # Set the fill color of the semicircle
    pen.color(col)
 
    # Draw a circle
    pen.circle(rad, -180)
 
    # Move the turtle to air
    pen.up()
 
    # Move the turtle to a given position
    pen.setpos(val, 0)
 
    # Move the turtle to the ground
    pen.down()
 
    pen.right(180)
 
 
# Set the colors for drawing
col = ['violet', 'indigo', 'blue',
       'green', 'yellow', 'orange', 'red']
 
# Setup the screen features
sc.setup(600, 600)
 
# Set the screen color to black
sc.bgcolor('black')
 
# Setup the turtle features
pen.right(90)
pen.width(10)
pen.speed(7)
 
# Loop to draw 7 semicircles
for i in range(7):
    semi_circle(col[i], 10*(
      i + 8), -10*(i + 1))
 
# Hide the turtle
pen.hideturtle()


Python3
import turtle
 
mypen= turtle.Turtle()
mypen.shape('turtle')
mypen.speed(10)
 
window= turtle.Screen()
window.bgcolor('white')
rainbow= ['red','orange','yellow','green','blue','indigo','violet']
size= 180
mypen.penup()
mypen.goto(0,-180)
for color in rainbow:
    mypen.color(color)
    mypen.fillcolor(color)
    mypen.begin_fill()
    mypen.circle(size)
    mypen.end_fill()
    size-=20
 
turtle.done()


输出:

Rainbow 使用 Turtle Graphics

示例 2:

Python3

import turtle
 
mypen= turtle.Turtle()
mypen.shape('turtle')
mypen.speed(10)
 
window= turtle.Screen()
window.bgcolor('white')
rainbow= ['red','orange','yellow','green','blue','indigo','violet']
size= 180
mypen.penup()
mypen.goto(0,-180)
for color in rainbow:
    mypen.color(color)
    mypen.fillcolor(color)
    mypen.begin_fill()
    mypen.circle(size)
    mypen.end_fill()
    size-=20
 
turtle.done()

输出: