首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >停止海龟的“范围”论点改变圆的方向

停止海龟的“范围”论点改变圆的方向
EN

Stack Overflow用户
提问于 2020-05-01 18:22:50
回答 1查看 66关注 0票数 2

我正在做一项作业,作业说明如下:

使用海龟图形,实现功能行星(),这将模拟水星,金星,地球和火星在一个行星旋转火星的行星运动。你可以假设:

  1. 在模拟开始时,所有的行星都排列在一起(例如沿负y轴)。
  2. 水星、金星、地球和火星与太阳(旋转中心)的距离分别为58、108、150和228像素。火星、地球、金星和水星每1度的圆周运动,
  3. 将分别移动2、3和7.5度。

下图显示了地球绕太阳约四分之一时的模拟状态。注意,水星几乎完成了它的第一次旋转。

我得到的输出是:

这是我的密码:

代码语言:javascript
复制
import turtle
import math


s = turtle.Screen()
t = turtle.Turtle()

def jump(t,x,y):
    'makes turtle t jump to coordinates (x,y)'
    t.penup()
    t.goto(x,y)
    t.pendown()

def planets(t):

    #mercury
    jump(t,0,-58)
    t.circle(58,337.5)

    #venus
    jump(t,0,-108)
    t.circle(108,135)

#   earth
    jump(t,0,-150)
    t.circle(150,90)

#   mars
    jump(t,0,-228)
    t.circle(228,45)



planets(t)
turtle.done()

基本上,方向在改变。如何获得所需的输出?如何阻止extent参数改变圆的方向?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-05-01 21:53:57

问题不是extentcircle()的论点,而是你开始每一个新的轨道与海龟在任何任意的方向,它是在它完成之前的轨道。在绘制每个轨道之前,你需要将海龟设定为一个已知的方向:

代码语言:javascript
复制
from turtle import Screen, Turtle

def jump(t, x, y):
    ''' makes turtle t jump to coordinates (x, y) '''

    t.penup()
    t.goto(x, y)
    t.pendown()

def planets(t):

    # mercury
    t.setheading(0)
    jump(t, 0, -58)
    t.circle(58, 337.5)
    t.stamp()

    # venus
    t.setheading(0)
    jump(t, 0, -108)
    t.circle(108, 135)
    t.stamp()

    # earth
    t.setheading(0)
    jump(t, 0, -150)
    t.circle(150, 90)
    t.stamp()

    # mars
    t.setheading(0)
    jump(t, 0, -228)
    t.circle(228, 45)
    t.stamp()

turtle = Turtle()
turtle.shape('circle')
turtle.shapesize(0.5)
turtle.hideturtle()

planets(turtle)

screen = Screen()
screen.exitonclick()

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61548397

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档