如何使用 Turtle 制作印度国旗 - Python
在这里,我们将使用Python Turtle Graphics 制作“伟大的印度国旗”。在这里,我们将使用许多海龟函数,如begin_fill()、end_fill()来填充 Flag 内部的颜色、 penup()、pendown()、goto() 等以达到目标。
海龟图形
在计算机图形学中,海龟图形是在笛卡尔平面上使用相对光标的矢量图形。 Turtle 是一个类似绘图板的功能, 让我们命令海龟并使用它进行绘制。
Features of turtle graphics:
- forward(x): moves the pen in forward direction by x units.
- backward(x): moves the pen in the backward direction by x units.
- right(x): rotate the pen in the clockwise direction by an angle x.
- left(x): rotate the pen in the anticlockwise direction by an angle x.
- penup(): stop drawing of the turtle pen.
- pendown(): start drawing of the turtle pen.
- begin_fill(): starts filling the color inside the shape.
- fillcolor(“color_name”): sets the color to be filled.
- end_fill(): stops filling the color.
方法
1. 导入海龟模块。
import turtle
2. 找一个屏幕来画画。
screen = turtle.Screen()
3. 为turtle(这里是“t”)定义一个实例。
4. 为了制作印度国旗,让我们将过程分为 4 个步骤:
- 橙色的矩形。
- 然后是中间的矩形。
- 然后是最后一个绿色矩形。
- 然后是中间矩形内的阿育王脉轮。
5. 这里所有三个矩形的尺寸都是(800 单位 x 167 单位),构成标志的尺寸为(800 单位 x 501 单位)。
6.海龟从坐标(-400, 250)开始。
7. 然后从那个位置开始,它使第一个橙色矩形。
8. 然后从第一个矩形的终点, Turtle 制作第二个没有颜色的矩形。
9. 然后制作第三个绿色矩形。现在对于Ashoka Chakra ,我们需要执行一组操作
- 一个大蓝色圆圈和一个比蓝色小一点的白色圆圈。
- 蓝色和白色圆圈内衬上的一组蓝色小圆圈。
- 最后在从中心开始向外的两个蓝色和白色圆圈内辐条。
10.终于,一个国家的骄傲已经准备好了。
下面是上述方法的实现:
Python
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()
输出: