2017-03-12 11 views
0

私は、髪の毛のようなものを描くコードを作っています。形状の2つの端が合っても、色が正しく塗りつぶされません。 this is what I tried to imitate this is what I got, which is pretty ambarassing 私は欲しい円弧を描く方法がわかりませんでしたので、半円で塗りつぶしました。これは私のコードです:pythonの色が正しく塗りつぶされていない

from turtle import* 

myvarhead=200 
def hair(): 
    rad1=(int(myvarhead)/7*4) 
    color('black') 
    begin_fill() 

    #left side 
    left(90) 
    circle(rad1,180) 
    right(120) 
    forward(rad1/10) 
    left(150) 
    forward((rad1/10)*7) 
    left(30) 
    circle(rad1/4,160) 
    circle(-rad1/4,120) 
    right(10) 
    forward((rad1/10)*3) 
    #going back 
    right(180) 
    forward(rad1/10*3) 
    left(10) 
    circle(rad1/4,120) 
    circle(-rad1/4,160) 
    right(30) 
    forward(rad1/10*7) 
    right(150) 
    forward(rad1/10) 
    left(120) 
    circle(-rad1,180) 
    #right side 
    left(120) 
    forward(rad1/10) 
    right(150) 
    forward(rad1/10*7) 
    right(30) 
    circle(-rad1/4,160) 
    circle(rad1/4,120) 
    left(10) 
    forward(rad1/10*3) 
    right(180) 
    end_fill() 

hair() 
right(90) 
#forward(100) 

答えて

0

一つのアプローチは、あなたのポリゴンの上にバックトラックが、あなたは/クローズそれを終えるまで、単に前進し続けるしないように次のようになります。

from turtle import * 

def hair(): 
    radius = (int(my_var_head)/7 * 4) 
    color('black') 

    begin_fill() 

    # top & left side 
    left(90) 
    circle(radius, 180) 
    right(120) 
    forward(radius/10) 
    left(150) 
    forward((radius/10) * 7) 
    left(30) 
    circle(radius/4, 160) 
    circle(-radius/4, 120) 
    right(10) 
    forward((radius/10) * 3) 

    # right side 

    forward((radius/10) * 3) 
    right(10) 
    circle(-radius/4, 120) 
    circle(radius/4, 160) 
    left(30) 
    forward((radius/10) * 7) 
    left(150) 
    forward(radius/10) 

    end_fill() 

my_var_head = 200 
hair() 
hideturtle() 
done() 

enter image description here

関連する問題