2

turtleを使用して、中心点の周りにネストされた正方形を描画する再帰関数の作成に取り組んでいます。私がこれまでに持っているものは、ネストされた正方形を描画しますが、正方形の中心ではなく角の周りにあります。

def drawCentSq(t, center,side):

    xPt=center[0]
    yPt=center[1]
    t.up()
    t.goto(xPt,yPt)
    xPt-=20
    yPt+=20
    t.up()
    t.goto(xPt,yPt)
    t.down()
    for i in range(4):
        t.forward(side)
        t.right(90)


def drawNestSqCent(t, center, side):
    if side<1:
        return
    else:
        drawCentSq(t,center,side)
        drawNestSqCent(t,center,side-10)

def main():
    import turtle
    import random
    mad=turtle.Turtle()
    wn=mad.getscreen()
    print(drawNestSqCent(mad,(0,0),100))  
main()

提案や修正はありますか?

4

2 に答える 2

0

これが効果的なスクリプトです。

def drawSquare(cx,cy,turtle,side):
    for i in range(4):
        turtle.forward(side)
        turtle.right(90)
    turtle.forward(5)
    turtle.right(90)
    turtle.up()
    turtle.forward(5)
    turtle.down()
    turtle.left(90)

def drawNestedSquare(cx,cy,turtle,side):
    if side >= 1:
        drawSquare(cx,cy,turtle,side)
        drawNestedSquare(cx,cy,turtle,side-10)

def drawsTheSquares(cx,cy,turtle,side):
    turtle.up()
    turtle.goto(cx,cy)
    turtle.forward(side/2)
    turtle.right(90)
    turtle.forward(side/2)
    turtle.right(90)
    turtle.down()
    drawNestedSquare(cx,cy,turtle,side)

def main():
    import turtle
    artem = turtle.Turtle()
    drawsTheSquares(150,10,artem,75)

main()
于 2013-07-24T09:00:32.967 に答える