Почему моя круговая программа дважды поворачивает черепаху до финиша? - PullRequest
1 голос
/ 03 мая 2020

Когда я пытаюсь запустить этот код, он работает, но черепаха вращается дважды. Я пытался найти линию ограничителя или что-то, но не смог ничего найти.

import turtle
import math

def drawCircle():
    rad = int(input("Insert your radius : "))
    cent = int(input("Insert center point : "))
    circle = turtle.Turtle()
    circle.up()
    circle.goto(cent,rad)
    circle.down()    
    circle.color("black")
    times_crossed_y = 0
    x_sign = 1.0
    while times_crossed_y <= 3:
        circle.forward(2 * math.pi * rad / 120.0)
        circle.right(3.0)
        x_sign_new = math.copysign(1, circle.xcor())        
        if(x_sign_new != x_sign):
            times_crossed_y += 1
        x_sign = x_sign_new
    return  
drawCircle()
print("Finished")
turtle.done()

1 Ответ

1 голос
/ 03 мая 2020

Строка с надписью while times_crossed_y <= 3: должна быть while times_crossed_y <= 1:, измените свой код на этот;

import turtle
import math

def drawCircle():
    rad = int(input("Insert your radius : "))
    cent = int(input("Insert center point : "))
    circle = turtle.Turtle()
    circle.up()
    circle.goto(cent,rad)
    circle.down()    
    circle.color("black")
    times_crossed_y = 0
    x_sign = 1.0
    while times_crossed_y <= 1:
        circle.forward(2 * math.pi * rad / 120.0)
        circle.right(3.0)
        x_sign_new = math.copysign(1, circle.xcor())        
        if(x_sign_new != x_sign):
            times_crossed_y += 1
        x_sign = x_sign_new
    return  
drawCircle()
print("Finished")
turtle.done()

...