如何用Python Turtle制作印度国旗
在这里,我们将使用PythonTurtle图形制作 “伟大的印度国旗”。在这里,我们将使用许多Turtle函数,如begin_fill(), end_fill()在旗帜内填充颜色,penup(), pendown(), goto()等来达到目标。
Turtle 图形
在计算机图形学中,Turtle图形是使用笛卡尔平面上的相对光标的矢量图形。Turtle是一种类似于画板的功能,让我们可以指挥Turtle并使用它来作画。
Turtle图形的特点:
- forward(x): 向前移动笔的方向为x个单位。
- backward(x): 将笔向后移动x个单位。
- right(x):将笔沿顺时针方向旋转一个角度x。
- left(x): 将笔沿逆时针方向旋转一个角度x。
- penup(): 停止绘制Turtle笔。
- pendown(): 开始绘制Turtle笔。
- begin_fill(): 开始向形状内部填充颜色。
- fillcolor(“color_name”): 设置要填充的颜色。
- end_fill(): 停止填充颜色。
步骤
1.导入Turtle模块。
import turtle
2.找一个屏幕来画。
screen = turtle.Screen()
3.定义一个Turtle(这里是 “t”)的实例。
4. 为了制作一面印度国旗,让我们把这个过程分为4个步骤。
- 带有橙色的矩形。
- 然后是中间的矩形。
- 然后是最后一个绿色矩形。
- 然后是中间矩形内的阿育王查克拉。
5.这里所有三个矩形的尺寸是(800个单位x167个单位),这使得旗子的尺寸为(800个单位x501个单位)。
6.Turtle从坐标(-400,250)开始。
7.然后从这个位置开始做第一个橙色的矩形。
8.然后从第一个矩形的结束点开始,Turtle做出了第二个没有颜色的矩形。
9.然后,第三个绿色的矩形被制成。现在,对于阿育王脉轮,我们需要进行一系列的操作
- 一个大的蓝色圆圈和一个仅比蓝色小的白色圆圈。
- 在一个蓝白相间的圆圈的内衬上,有一组蓝色的小圆圈。
- 最后,在两个蓝白相间的圆圈内的辐条,从中心向外侧方向开始。
10.最后,一个人的国家的骄傲已经准备好了。
下面是上述方法的实现。
import turtle
from turtle import*
#screen for output
screen = turtle.Screen()
# Defining a turtle Instance
t = turtle.Turtle()
speed(0)
# initially penup()
t.penup()
t.goto(-400, 250)
t.pendown()
# Orange Rectangle
#white rectangle
t.color("orange")
t.begin_fill()
t.forward(800)
t.right(90)
t.forward(167)
t.right(90)
t.forward(800)
t.end_fill()
t.left(90)
t.forward(167)
# Green Rectangle
t.color("green")
t.begin_fill()
t.forward(167)
t.left(90)
t.forward(800)
t.left(90)
t.forward(167)
t.end_fill()
# Big Blue Circle
t.penup()
t.goto(70, 0)
t.pendown()
t.color("navy")
t.begin_fill()
t.circle(70)
t.end_fill()
# Big White Circle
t.penup()
t.goto(60, 0)
t.pendown()
t.color("white")
t.begin_fill()
t.circle(60)
t.end_fill()
# Mini Blue Circles
t.penup()
t.goto(-57, -8)
t.pendown()
t.color("navy")
for i in range(24):
t.begin_fill()
t.circle(3)
t.end_fill()
t.penup()
t.forward(15)
t.right(15)
t.pendown()
# Small Blue Circle
t.penup()
t.goto(20, 0)
t.pendown()
t.begin_fill()
t.circle(20)
t.end_fill()
# Spokes
t.penup()
t.goto(0, 0)
t.pendown()
t.pensize(2)
for i in range(24):
t.forward(60)
t.backward(60)
t.left(15)
#to hold the
#output window
turtle.done()
输出: