我正在尝试在 jython 中画一张脸。
我正在使用 If not Elif 语句,因此每种颜色都会被覆盖,并且我会一层一层地构建一张脸。
def face():
pic=makeEmptyPicture(400,400)
for x in range (400):
for y in range (400):
px = getPixel(pic,x,y)
setColor(px, makeColor(43, 170, 214))
#face
if (( pow((x-200),2)+pow((y-200),2))<pow(200,2)):
setColor(px, makeColor (255, 214, 153))
#eyes
if( ((pow((x-100),2)+pow((y-160),2))<pow(50,2)) or ((pow((x-290),2)+pow((y-145),2))<pow(60,2)) ):
setColor(px,makeColor(255,255,255))
#iris
if( ((pow((x-100),2)+pow((y-163),2))<pow(20,2)) or ((pow((x-295),2)+pow((y-135),2))<pow(22,2)) ):
setColor(px,makeColor(54, 123, 220))
#pupil
if( ((pow((x-100),2)+pow((y-165),2))<pow(10,2)) or ((pow((x-295),2)+pow((y-137),2))<pow(11,2)) ):
setColor(px,makeColor(0,0,0))
#nose
if( ((pow((x-209),2)+pow((y-245),2))<pow(13,2)) or ((pow((x-191),2)+pow((y-250),2))<pow(12,2)) ):
setColor(px,makeColor(255, 198, 114))
#mouth
for y in range (337,311):
x = (y-337)*(247-181)/(311-337) +181
setColor(px,makeColor(254, 114, 115))
return (pic)
我得到了这个:
我想要的是这个:
看来这没有执行:
#mouth
for y in range (337,311):
x = (y-337)*(247-181)/(311-337) +181
setColor(px,makeColor(254, 114, 115))
我做错了什么?