Python使用graphics库绘制笑脸

编程入门 行业动态 更新时间:2024-10-08 14:46:00

Python使用graphics库绘制<a href=https://www.elefans.com/category/jswz/34/1734233.html style=笑脸"/>

Python使用graphics库绘制笑脸

1.通过点击鼠标改变绘制笑脸的位置(笑脸半径为100)

代码:

import graphicsdef 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)  # 创建一个椭圆,# (长方形,一个左上角点,一个右下角点。如何中间画椭圆)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():#退出breakif 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 mathdef 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():#退出breaklist_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()

运行结果:

 

更多推荐

Python使用graphics库绘制笑脸

本文发布于:2024-03-13 15:01:19,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1734234.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:笑脸   Python   graphics

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!