python programming exercise facemove
- 作者: _少爺血統
- 来源: 51数据库
- 2022-08-12
from graphics import*
from math import*
from random import*
class Face:
def __init__(self,win,center,size):
self.eyeSize = 0.15*size
self.eyeOff = size/3.0
mouthSize = 0.8*size
mouthOff = size/2.0
self.size = size
self.center = center
self.win = win
self.head = Circle(self.center,self.size)
self.head.draw(win)
self.leftEye = Circle(self.center,self.eyeSize)
self.leftEye.move(-self.eyeOff,-self.eyeOff)
self.rightEye = Circle(self.center,self.eyeSize)
self.rightEye.move(self.eyeOff,-self.eyeOff)
self.leftEye.draw(win)
self.rightEye.draw(win)
p1 = self.center.clone()
p1.move(-mouthSize/2,mouthOff)
p2 = self.center.clone()
p2.move(mouthSize/2,mouthOff)
self.mouth = Line(p1,p2)
self.mouth.draw(win)
def moveface(self,x,y):
self.head.move(x,y)
self.leftEye.move(x,y)
self.rightEye.move(x,y)
self.mouth.move(x,y)
self.center.move(x,y)
def getCenter(self):
return self.center
def flinch(self):
self.leftEye.undraw()
self.leftEye = Line(Point(self.center.getX()-self.eyeSize,self.center.getY()),Point(self.center.getX()+self.eyeSize,self.center.getY()))
self.leftEye.move(-self.eyeOff,-self.eyeOff)
self.leftEye.draw(self.win)
self.rightEye.undraw()
self.rightEye = Line(Point(self.center.getX()-self.eyeSize,self.center.getY()),Point(self.center.getX()+self.eyeSize,self.center.getY()))
self.rightEye.move(self.eyeOff,-self.eyeOff)
self.rightEye.draw(self.win)
def unflinch(self):
self.leftEye.undraw()
self.rightEye.undraw()
self.leftEye = Circle(self.center,self.eyeSize)
self.leftEye.move(-self.eyeOff,-self.eyeOff)
self.rightEye = Circle(self.center,self.eyeSize)
self.rightEye.move(self.eyeOff,-self.eyeOff)
self.leftEye.draw(self.win)
self.rightEye.draw(self.win)
def main():
win = GraphWin("",300,300)
center = Point(150,150)
size = 20
face = Face(win,Point(280*random(),280*random()),size)
i = 0
x = 0.1
y = 0.2
face.flinch()
win.getMouse()
face.unflinch()
for i in range(100000):
face.unflinch()
face.moveface(x,y)
center = face.getCenter()
if center.getX() +size>=300 or center.getX() -size<=0:
x = -x
face.flinch()
if center.getY() +size>=300 or center.getY() -size<=0:
y = -y
face.flinch()
win.flush()
main()
推荐阅读
热点文章
Discord.py(重写)on_member_update 无法正常工作
0
Discord.py 在 vc 中获取用户分钟数
0
discord.py 重写 |为我的命令出错
0
Discord.py rewrite 如何 DM 命令?
0
播放音频时,最后一部分被切断.如何解决这个问题?(discord.py)
0
在消息删除消息 Discord.py
0
如何使 discord.py 机器人私人/直接消息不是作者的人?
0
(Discord.py) 如何获取整个嵌入内容?
0
Discord bot 尽管获得了许可,但不能提及所有人
0
Discord.py discord.NotFound 异常
0
