簡體   English   中英

如何使我的台詞不與Turtle交叉?

[英]How can I make my lines not cross with Turtle?

這是我的代碼的一部分(尚未准備好)。 我需要使圓圈的線不交叉,假裝是重疊的對象。 我不想填寫空白圓圈。 提前致謝!

# G7
for i in range (140,0,-20):
    turtle.up()
    turtle.sety(160)
    turtle.setx(i)
    turtle.down()
    turtle.setheading(90)
    turtle.circle(i)

# G8
for i in range (160,0,-20):
    turtle.up()
    turtle.sety(0)
    turtle.setx(i)
    turtle.down()
    turtle.setheading(90)
    turtle.circle(i,180)

Python Drawing.jpg

最明顯的方法似乎是使用fill

import turtle

turtle.color('black', 'white')
turtle.speed('fastest')

for i in range(140, 0, -20):
    turtle.up()
    turtle.setposition(i, 160)
    turtle.down()
    turtle.setheading(90)
    turtle.circle(i)

for i in range(160, 0, -20):
    turtle.up()
    turtle.setposition(i, 0)
    turtle.down()
    turtle.setheading(90)
    turtle.begin_fill()
    turtle.circle(i, 180)
    turtle.end_fill()

turtle.hideturtle()
turtle.mainloop()

在此處輸入圖片說明

但是由於您指示您不想使用填充 ,所以另一種方法是使用沖壓

from turtle import Turtle, Screen

CURSOR_SIZE = 20

screen = Screen()

turtle = Turtle('circle', visible=False)
turtle.color('black', 'white')
turtle.penup()

turtle.sety(140)

for i in range(240, 0, -40):
    turtle.shapesize(i / CURSOR_SIZE)
    turtle.stamp()

turtle.sety(0)

for i in range(280, 0, -40):
    turtle.shapesize(i / CURSOR_SIZE)
    turtle.stamp()

turtle.sety(-10)

turtle.begin_poly()
turtle.circle(10, 180, 12)
turtle.end_poly()

screen.register_shape("semicircle", turtle.get_poly())
turtle.shape("semicircle")

turtle.sety(-160)

for i in range(320, 0, -40):
    turtle.shapesize(i / CURSOR_SIZE)
    turtle.stamp()

screen.mainloop()

在此處輸入圖片說明

但是,如果這些都不對您有吸引力 ,則可以通過計算每個弧的起點在其下方的圓上的位置來避免重疊的線條來簡單地繪制圖像。 即做數學。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM