Qui*_*inn 5 python geometry turtle-graphics
我有这个学校作业:
\n\n不用乌龟circle函数堆雪人
雪人应该在蓝色背景上,并且应该用白色填充。
\n\n雪人的轮廓应该是黑色的。
\n\n雪人\xe2\x80\x99s 的身体应该由 3 个实心圆圈组成。
\n\n每个圆圈的轮廓应为 3 像素宽。
\n\n底部圆的半径应为 100 像素。
\n\n中间圆的半径应为 70 像素。
\n\n顶部圆圈的半径应为 40 像素。
\n\n每个圆圈应位于其下方圆圈上方的中心(底部圆圈除外,它可以位于任何位置)。
\n\n圆圈之间不应有间隙。
\n\n给雪人一个嘴巴、眼睛和鼻子(帽子是可选的)。
\n\n确保每只手都有两个棍臂和至少两个手指。
\n\n到目前为止,我创建了这个,但在继续之前我似乎无法正确获取圆圈。\n而且,不知道如何在圆圈中着色或为眼睛制作点。请帮助我,第一次编码。
\n\nimport turtle # allows us to use turtle library\nwn = turtle.Screen() # allows us to create a graphics window\nwn.bgcolor("blue") # sets gtaphics windows background color to blue\nimport math # allows us to use math functions\nquinn = turtle.Turtle() # sets up turtle quinn\nquinn.setpos(0,0)\nquinn.pensize(3)\nquinn.up()\n\n# drawing first circle middle\nquinn.forward(70)\nquinn.down()\nquinn.left(90)\n\n# calculation of cicumference of a circle\na = (math.pi*140.00/360)\n\n#itineration for first circle\nfor i in range (1,361,1):\n quinn.left(a)\n quinn.forward (1)\n\n# drawing second circle bottom\nquinn.up()\nquinn.home()\nquinn.right(90)\nquinn.forward(70)\nquinn.left(90)\nquinn.down()\n\nb = (math.pi*200.00/360)\n\nfor i in range (1,361,1):\n quinn.right(b)\n quinn.forward(1)\n\n# drawing third circle head top\n\nquinn.up ()\nquinn.goto(0,70)\nquinn.right(90)\nquinn.down()\n\nc =(math.pi*80/360)\n\nfor i in range (1,361,1):\n quinn.left(c)\n quinn.forward(1)\n\nwn.exitonclick()\nRun Code Online (Sandbox Code Playgroud)\n
下面是一个绘制蓝色圆圈的示例函数:
def draw_circle(radius):
turtle.up()
turtle.goto(0,radius) # go to (0, radius)
turtle.begin_fill() # start fill
turtle.down() # pen down
turtle.color('blue')
times_y_crossed = 0
x_sign = 1.0
while times_y_crossed <= 1:
turtle.forward(2*math.pi*radius/360.0) # move by 1/360
turtle.right(1.0)
x_sign_new = math.copysign(1, turtle.xcor())
if(x_sign_new != x_sign):
times_y_crossed += 1
x_sign = x_sign_new
turtle.up() # pen up
turtle.end_fill() # end fill.
return
Run Code Online (Sandbox Code Playgroud)
然后你可以修改上面的函数,添加圆心位置(x,y)的参数:
def draw_circle(radius, x, y):
turtle.up()
turtle.goto(x,y+radius) # go to (x, y + radius)
turtle.begin_fill() # start fill
turtle.down() # pen down
turtle.color('blue')
times_y_crossed = 0
x_sign = 1.0
while times_y_crossed <= 1:
turtle.forward(2*math.pi*radius/360.0) # move by 1/360
turtle.right(1.0)
x_sign_new = math.copysign(1, turtle.xcor())
if(x_sign_new != x_sign):
times_y_crossed += 1
x_sign = x_sign_new
turtle.up() # pen up
turtle.end_fill() # end fill.
return
Run Code Online (Sandbox Code Playgroud)
您可以轻松添加点,例如:
turtle.goto(-20,10)
turtle.color('red')
turtle.dot(20)
turtle.goto(40,10)
turtle.dot(20)
Run Code Online (Sandbox Code Playgroud)
放在一起:
import turtle
import math
def draw_circle(radius, x, y):
turtle.up()
turtle.goto(x,y+radius) # go to (0, radius)
turtle.begin_fill() # start fill
turtle.down() # pen down
turtle.color('blue')
times_y_crossed = 0
x_sign = 1.0
while times_y_crossed <= 1:
turtle.forward(2*math.pi*radius/360.0) # move by 1/360
turtle.right(1.0)
x_sign_new = math.copysign(1, turtle.xcor())
if(x_sign_new != x_sign):
times_y_crossed += 1
x_sign = x_sign_new
turtle.up() # pen up
turtle.end_fill() # end fill.
return
draw_circle(100, 10, 10)
turtle.goto(-20,10)
turtle.color('red')
turtle.dot(20)
turtle.goto(40,10)
turtle.dot(20)
turtle.pen(shown=False)
turtle.done()
Run Code Online (Sandbox Code Playgroud)
你应该尝试自己完成作业的剩余部分..;)
| 归档时间: |
|
| 查看次数: |
17732 次 |
| 最近记录: |