[英]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)
最明顯的方法似乎是使用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.