使用Python乌龟图形绘制可汗学院徽标

时间:2019-04-28 15:02:40

标签: python turtle-graphics

我正在尝试使用Python中的海龟图形来绘制可汗学院徽标,但在尝试绘制花朵时却卡住了。我应该使用函数来做到这一点吗?还是我应该画两个半圈来实现?

我已经开始尝试半圈,但无法弄清楚。

# circle
t.color("white")
t.up()
t.goto(-25,0)
t.down()
t.begin_fill()
t.circle(60)
t.end_fill()

# blossom
t.up()
t.goto(-25,-150)
t.down()
t.rt(45)

输出应类似于可汗学院徽标。

1 个答案:

答案 0 :(得分:0)

  

我已经开始尝试半圈,但仍然不能   弄清楚。

您画了一个圆圈,但是上面的代码中缺少半个圆圈的尝试。您应该提供尽可能多的尝试。

可以仅使用乌龟的circle()方法绘制此徽标。但是,您需要完全理解所有三个参数:

circle(radius, extent=None, steps=None)

特别是,使用负数radius的含义。 (了解否定的extent也不会有伤害。)

我能够简单地将徽标弄出来:

from turtle import Screen, Turtle

RADIUS = 100

screen = Screen()
screen.colormode(255)

turtle = Turtle(visible=False)
turtle.speed('fastest')  # because I have no patience
turtle.penup()  # we'll use fill instead of lines
turtle.color(20, 191, 150)  # greenish color

turtle.sety(-RADIUS)  # center hexagon
turtle.begin_fill()
turtle.circle(RADIUS, steps=6)  # draw hexagon
turtle.end_fill()

turtle.color('white')  # interior color
turtle.sety(2 * RADIUS / 11)  # position circle (head)
turtle.begin_fill()
turtle.circle(2 * RADIUS / 9)  # draw circle (head)
turtle.end_fill()

turtle.forward(5 * RADIUS / 8)
turtle.right(85)

turtle.begin_fill()
turtle.circle(-13 * RADIUS / 20, 190)
turtle.right(85)
turtle.circle(-13 * RADIUS / 20, 90)
turtle.left(180)
turtle.circle(-13 * RADIUS / 20, 90)
turtle.end_fill()

screen.exitonclick()

enter image description here

我建议您做的是检查Wikipedia entry for Hexagon并找出六边形的所有有用内部点,这些点可能有助于您设计基于几何的解决方案。您知道可以做到的,现在就做好吧。