Python龟螺旋图

2024-03-29 02:30:25 发布

您现在位置:Python中文网/ 问答频道 /正文

我想在输出中画一个螺旋,而不是一个普通的螺旋。然而,我对如何更改螺旋函数以获得像这样的螺旋的期望输出感到困惑- [![fibo][1]][1]

from turtle import Turtle, Screen
import math

t = Turtle()
s = Screen()
t.speed(0)


def spiral(x, y, stLength, k): 
    t.up()
    t.setpos(x, y)
    t.seth(90)
    t.down()
    for i in range(k):
        t.forward(stLength)
        t.left(15)
        stLength -=0.2


spiral(250,-120,40,200) 


s.exitonclick()


Tags: 函数fromimportdefmathscreenspeedup
1条回答
网友
1楼 · 发布于 2024-03-29 02:30:25

我这样做了一个小时,我做出了形状和这个螺旋,但我仍然停留在这个斐波那契螺旋上。没那么好用。但它的效果和你画的一样好

from turtle import Turtle, Screen

t = Turtle()
s = Screen()
t.speed(5)

def rectangle(x, y, side_a, side_b):
    t.setpos(x, y)
    t.forward(side_b)
    t.right(90)
    t.forward(side_a)
    t.right(90)
    t.forward(side_b)
    t.right(90)
    t.forward(side_a)
    t.right(90)

def squares_in_rectangle():
    t.penup()
    t.goto(200, 0)
    t.pendown()
    t.right(90)
    t.forward(200)
    t.penup()
    t.goto(200, -110)
    t.left(90)
    t.pendown()
    t.forward(100)
    t.penup()
    t.goto(230, -110)
    t.right(90)
    t.pendown()
    t.forward(90)
    t.penup()
    t.goto(200, -140)
    t.left(90)
    t.pendown()
    t.forward(30)
    t.penup()
    t.goto(220, -110)
    t.right(90)
    t.pendown()
    t.forward(30)
    t.penup()
    t.goto(220, -120)
    t.left(90)
    t.pendown()
    t.forward(10)


def spiral(x, y, stLength, k):
    t.up()
    t.setpos(x, y)
    t.seth(225)
    t.down()
    for i in range(k):
        something = 60
        something += 10
        t.left(something)
        something += 3
        stLength /= 0.7
        t.forward(stLength)

rectangle(0, 0, 200, 300)
squares_in_rectangle()
spiral(225, -120, 35, 6)


s.exitonclick()

相关问题 更多 >