大家好,小编为大家解答python画笑脸步骤的中文翻译的问题。很多人还不知道如何用python画一个笑脸,现在让我们一起来看看吧!
大家好,小编来为大家解答以下问题,python画笑脸步骤的中文翻译,python做简单的笑脸的编程,今天让我们一起来看看吧!
1.通过点击鼠标改变绘制笑脸的位置(笑脸半径为100)
代码:
import graphics
def yd(s,p,circ,oval1,oval2,ci1,ci2,o1,o2,bz):#移动函数
x=s.getX()-p.getX()
y=s.getY()-p.getY()
circ.move(x,y)
oval1.move(x, y)
oval2.move(x, y)
ci1.move(x, y)
ci2.move(x, y)
o1.move(x, y)
o2.move(x, y)
bz.move(x,y)
def text01():#绘制笑脸
width_k,height_g=800,600#窗口的宽高
win = graphics.GraphWin("qin",width=width_k,height=height_g) # 创建一个窗口对象
p = graphics.Point(win.getWidth()/2, win.getHeight()/2) # 创建一个中心点对象
#画脸
circ = graphics.Circle(p,100) # 创建一个圆对象,半径为20,位置为点对象
circ.setFill(graphics.color_rgb(248, 255, 24)) # 填充颜色设置颜色为黄色
circ.draw(win) # 将圆绘制到win窗口中
#画眼睛
R1=p.clone()
R2=p.clone()
L1=p.clone()
L2=p.clone()
R1.move(-60,-70)
R2.move(-20,-10)
L1.move(20, -70)
L2.move(60, -10)
oval1 = graphics.Oval(R1, R2) # 创建一个椭圆,
oval2 = graphics.Oval(L1, L2) # 创建一个椭圆,
# (长方形,一个左上角点,一个右下角点。如何中间画椭圆)
oval1.setFill(graphics.color_rgb(255, 255, 255)) # 填充颜色设置颜色为白色
#oval1.setOutline(graphics.color_rgb(248, 255, 24)) # 设置边框颜色
oval1.draw(win) # 将椭圆绘制到win窗口中
oval2.setFill(graphics.color_rgb(255, 255, 255)) # 填充颜色设置颜色为白色
#oval2.setOutline(graphics.color_rgb(248, 255, 24)) # 设置边框颜色
oval2.draw(win) # 将椭圆绘制到win窗口中
#画眼珠
R3=graphics.Point(R1.getX()+(R2.getX()-R1.getX())/2,R1.getY()+(R2.getY()-R1.getY())/2) # 创建一个中心点对象
R3.move(0,15)
L3=R3.clone()
L3.move(80,0)
ci1 = graphics.Circle(R3, 15) # 创建一个圆对象,半径为20,位置为点对象
ci2 = graphics.Circle(L3, 15) # 创建一个圆对象,半径为20,位置为点对象
ci1.setFill(graphics.color_rgb(0, 0, 0)) # 填充颜色设置颜色为黑色
ci2.setFill(graphics.color_rgb(0, 0, 0)) # 填充颜色设置颜色为黑色
ci1.setOutline(graphics.color_rgb(255, 255, 255)) # 设置边框颜色
ci2.setOutline(graphics.color_rgb(255, 255, 255)) # 设置边框颜色
ci1.draw(win) # 将圆绘制到win窗口中
ci2.draw(win) # 将圆绘制到win窗口中
#画笑脸
xiao_p=p.clone()
xiao_p.move(0,circ.getRadius()/2-20)#设置第一个椭圆的中心点
t_s1=xiao_p.clone()
t_s2=xiao_p.clone()
t_s1.move(-55,-45)
t_s2.move(55,45)
o1 = graphics.Oval(t_s1, t_s2) # 创建一个椭圆,
# (长方形,一个左上角点,一个右下角点python简单代码案例python做个笑脸。如何中间画椭圆)
o1.setFill(graphics.color_rgb(255, 255, 255)) # 填充颜色设置颜色为白色
o1.setOutline(graphics.color_rgb(248, 255, 24)) # 设置边框颜色
o1.draw(win) # 将椭圆绘制到win窗口中
xiao_p2=xiao_p.clone()
xiao_p2.move(0, -(t_s2.getY()-t_s1.getY())/ 4+10 ) # 设置第二个椭圆的中心点
t_s3 = xiao_p2.clone()
t_s4 = xiao_p2.clone()
t_s3.move(-60, -35)
t_s4.move(60, 35)
o2 = graphics.Oval(t_s3, t_s4) # 创建一个椭圆,
# (长方形,一个左上角点,一个右下角点。如何中间画椭圆)
o2.setFill(graphics.color_rgb(248, 255, 24)) # 填充颜色设置颜色为白色
o2.setOutline(graphics.color_rgb(248, 255, 24))#设置边框颜色
o2.draw(win) # 将椭圆绘制到win窗口中
#画鼻子
p2=p.clone()
p2.move(0,10)
bzi1=p2.clone()
bzi2=p2.clone()
bzi1.move(-7,-10)
bzi2.move(7,10)
bz= graphics.Oval(bzi1, bzi2) # 创建一个椭圆,
# (长方形,一个左上角点,一个右下角点。如何中间画椭圆)
bz.setFill(graphics.color_rgb(0, 0,0)) # 填充颜色设置颜色为白色
bz.draw(win) # 将椭圆绘制到win窗口中
# 绘制退出按键
d1 = graphics.Point(100, 400)
d2 = graphics.Point(190, 430)
ct = graphics.Rectangle(d1, d2) # 创建一个长方形对象,一个左上角点,一个右下角点
ct.draw(win) # 将长方形绘制到win窗口中
o = graphics.Point(d1.getX() + (d2.getX() - d1.getX()) / 2, d1.getY() + (d2.getY() - d1.getY()) / 2)
l = graphics.Text(o, "退出") # 创建一个文本对象,位置为点对象
l.draw(win) # 将文本绘制到win窗口中
while 1:
s = win.getMouse()#接受鼠标事件
if s.getX()>=d1.getX() and s.getX()<=d2.getX():
if s.getY()>=d1.getY() and s.getY()<=d2.getY():
#退出
break
if s!=None:
yd(s=s,p=p,circ=circ,oval1=oval1,oval2=oval2,ci1=ci1,ci2=ci2,o1=o1,o2=o2,bz=bz)#移动
p=s.clone()#改变圆点坐标
win.close()
if __name__ == '__main__':
text01()
pass
运行结果
2.通过捕捉窗口鼠标点击事件中的两个点,来绘制笑脸
第一个点为中心点
第二个点为笑脸的边缘
代码:
import graphics
import math
def yd(s,p,circ,oval1,oval2,ci1,ci2,o1,o2,bz):#移动函数
x=s.getX()-p.getX()
y=s.getY()-p.getY()
circ.move(x,y)
oval1.move(x, y)
oval2.move(x, y)
ci1.move(x, y)
ci2.move(x, y)
o1.move(x, y)
o2.move(x, y)
bz.move(x,y)
def text01(win,p,p2):#绘制笑脸
#画脸
circ = graphics.Circle(p,p2) # 创建一个圆对象,位置为点对象
circ.setFill(graphics.color_rgb(248, 255, 24)) # 填充颜色设置颜色为黄色
circ.draw(win) # 将圆绘制到win窗口中
#画眼睛
R1=p.clone()
R2=p.clone()
L1=p.clone()
L2=p.clone()
R1.move(-p2*(3/5),-p2*(7/10))
R2.move(-p2/5,-p2/10)
L1.move(p2/5, -p2*(7/10))
L2.move(p2*(3/5), -p2/10)
oval1 = graphics.Oval(R1, R2) # 创建一个椭圆,
oval2 = graphics.Oval(L1, L2) # 创建一个椭圆,
# (长方形,一个左上角点,一个右下角点。如何中间画椭圆)
oval1.setFill(graphics.color_rgb(255, 255, 255)) # 填充颜色设置颜色为白色
#oval1.setOutline(graphics.color_rgb(248, 255, 24)) # 设置边框颜色
oval1.draw(win) # 将椭圆绘制到win窗口中
oval2.setFill(graphics.color_rgb(255, 255, 255)) # 填充颜色设置颜色为白色
#oval2.setOutline(graphics.color_rgb(248, 255, 24)) # 设置边框颜色
oval2.draw(win) # 将椭圆绘制到win窗口中
#画眼珠
R3=graphics.Point(R1.getX()+(R2.getX()-R1.getX())/2,R1.getY()+(R2.getY()-R1.getY())/2) # 创建一个中心点对象
R3.move(0,(R2.getY()-R1.getY())/4)
L3=R3.clone()
L3.move(L2.getX()-R2.getX(),0)
ci1 = graphics.Circle(R3, (R2.getY()-R1.getY())/4) # 创建一个圆对象,位置为点对象
ci2 = graphics.Circle(L3, (R2.getY()-R1.getY())/4) # 创建一个圆对象,位置为点对象
ci1.setFill(graphics.color_rgb(0, 0, 0)) # 填充颜色设置颜色为黑色
ci2.setFill(graphics.color_rgb(0, 0, 0)) # 填充颜色设置颜色为黑色
ci1.setOutline(graphics.color_rgb(255, 255, 255)) # 设置边框颜色
ci2.setOutline(graphics.color_rgb(255, 255, 255)) # 设置边框颜色
ci1.draw(win) # 将圆绘制到win窗口中
ci2.draw(win) # 将圆绘制到win窗口中
#画笑脸
xiao_p=p.clone()
xiao_p.move(0,circ.getRadius()/3)#设置第一个椭圆的中心点
t_s1=xiao_p.clone()
t_s2=xiao_p.clone()
t_s1.move(-p2*(11/20),-p2*(9/20))
t_s2.move(p2*(11/20),p2*(9/20))
o1 = graphics.Oval(t_s1, t_s2) # 创建一个椭圆,
# (长方形,一个左上角点,一个右下角点。如何中间画椭圆)
o1.setFill(graphics.color_rgb(255, 255, 255)) # 填充颜色设置颜色为白色
o1.setOutline(graphics.color_rgb(248, 255, 24)) # 设置边框颜色
o1.draw(win) # 将椭圆绘制到win窗口中
xiao_p2=xiao_p.clone()
xiao_p2.move(0, -(t_s2.getY()-t_s1.getY())/ 4+p2/10 ) # 设置第二个椭圆的中心点
t_s3 = xiao_p2.clone()
t_s4 = xiao_p2.clone()
t_s3.move(-p2*(3/5), -p2*(7/20))
t_s4.move(p2*(3/5), p2*(7/20))
o2 = graphics.Oval(t_s3, t_s4) # 创建一个椭圆,
# (长方形,一个左上角点,一个右下角点。如何中间画椭圆)
o2.setFill(graphics.color_rgb(248, 255, 24)) # 填充颜色设置颜色为白色
o2.setOutline(graphics.color_rgb(248, 255, 24))#设置边框颜色
o2.draw(win) # 将椭圆绘制到win窗口中
#画鼻子
pt=p.clone()
pt.move(0,p2/10)
bzi1=pt.clone()
bzi2=pt.clone()
bzi1.move(-p2*(7/100),-p2/10)
bzi2.move(p2*(7/100),p2/10)
bz= graphics.Oval(bzi1, bzi2) # 创建一个椭圆,
# (长方形,一个左上角点,一个右下角点。如何中间画椭圆)
bz.setFill(graphics.color_rgb(0, 0,0)) # 填充颜色设置颜色为白色
bz.draw(win) # 将椭圆绘制到win窗口中
if __name__ == '__main__':
lowerImage = graphics.Image(graphics.Point(0,0),"R-C.gif" )#图片对象
lowerImage.move(lowerImage.getWidth()/2,lowerImage.getHeight()/2)
win = graphics.GraphWin("qin", width=lowerImage.getWidth(), height=lowerImage.getHeight()) # 创建一个窗口对象,窗口大小为图片对象大小
lowerImage.draw(win)将图片对象绘制到win窗口中
# 绘制退出按键
d1 = graphics.Point(100, 400)
d2 = graphics.Point(190, 430)
ct = graphics.Rectangle(d1, d2) # 创建一个长方形对象,一个左上角点,一个右下角点
ct.draw(win) # 将长方形绘制到win窗口中
o = graphics.Point(d1.getX() + (d2.getX() - d1.getX()) / 2, d1.getY() + (d2.getY() - d1.getY()) / 2)
l = graphics.Text(o, "退出") # 创建一个文本对象,位置为点对象
l.draw(win) # 将文本绘制到win窗口中
list_d=[]
while 1:
s = win.getMouse()#接受鼠标事件
if s.getX()>=d1.getX() and s.getX()<=d2.getX():
if s.getY()>=d1.getY() and s.getY()<=d2.getY():
#退出
break
list_d.append(s)
if len(list_d)==2:
e=math.sqrt((list_d[0].getX()-list_d[1].getX())**2+(list_d[0].getY()-list_d[1].getY())**2)
text01(win,list_d[0],e)
list_d.clear()
win.close()
运行结果: