Py之pygame:有趣好玩—利用pygame库实现鱼儿自动实时目标跟踪(附完整代码)


jiji
jiji 2022-09-20 10:04:50 52205
分类专栏: 资讯

Py之pygame:有趣好玩—利用pygame库实现鱼儿自动实时目标跟踪(附完整代码)

目录

输出结果

实现代码


输出结果

实现代码

  1. Py之pygame:利用pygame库实现鱼儿自动实时目标跟踪
  2. import pygame,sys
  3. from math import *
  4. pygame.init()
  5. font1=pygame.font.SysFont('microsoftyaheimicrosoftyaheiui',23)
  6. textc=font1.render('.',True,(250,0,0))
  7. screen=pygame.display.set_mode((800,700),0,32)
  8. missile=pygame.image.load('F:/File_Python/Resources/fish02.png').convert_alpha()
  9. height=missile.get_height()
  10. width=missile.get_width()
  11. pygame.mouse.set_visible(0)
  12. x1,y1=100,600 鱼儿初始位置
  13. velocity=800 鱼儿速度
  14. time=1/1000
  15. clock=pygame.time.Clock()
  16. A=()
  17. B=()
  18. C=()
  19. while True:
  20. for event in pygame.event.get():
  21. if event.type==pygame.QUIT:
  22. sys.exit()
  23. clock.tick(300)
  24. x,y=pygame.mouse.get_pos() 获取鼠标位置,鼠标就是鱼儿游过去的目标
  25. distance=sqrt(pow(x1-x,2)+pow(y1-y,2))
  26. section=velocity*time
  27. sina=(y1-y)/distance
  28. cosa=(x-x1)/distance
  29. angle=atan2(y-y1,x-x1)
  30. fangle=degrees(angle)
  31. x1,y1=(x1+section*cosa,y1-section*sina)
  32. missiled=pygame.transform.rotate(missile,-(fangle))
  33. if 0<=-fangle<=90:
  34. A=(width*cosa+x1-width,y1-height/2)
  35. B=(A[0]+height*sina,A[1]+height*cosa)
  36. if 90<-fangle<=180:
  37. A = (x1 - width, y1 - height/2+height*(-cosa))
  38. B = (x1 - width+height*sina, y1 - height/2)
  39. if -90<=-fangle<0:
  40. A = (x1 - width+missiled.get_width(), y1 - height/2+missiled.get_height()-height*cosa)
  41. B = (A[0]+height*sina, y1 - height/2+missiled.get_height())
  42. if -180<-fangle<-90:
  43. A = (x1-width-height*sina, y1 - height/2+missiled.get_height())
  44. B = (x1 - width,A[1]+height*cosa )
  45. C = ((A[0] + B[0]) / 2, (A[1] + B[1]) / 2)
  46. screen.fill((0,0,0))
  47. screen.blit(missiled, (x1-width+(x1-C[0]),y1-height/2+(y1-C[1])))
  48. screen.blit(textc, (x,y))
  49. pygame.display.update()

扩展思路:比如做个无人机实时定点,抓取目标……

参考文章:

一个简单的导弹自动追踪以及实时图片旋转算法

网站声明:如果转载,请联系本站管理员。否则一切后果自行承担。

本文链接:https://www.xckfsq.com/news/show.html?id=4026
赞同 0
评论 0 条
jijiL0
粉丝 0 发表 8 + 关注 私信
上周热门
如何使用 StarRocks 管理和优化数据湖中的数据?  2944
【软件正版化】软件正版化工作要点  2863
统信UOS试玩黑神话:悟空  2823
信刻光盘安全隔离与信息交换系统  2717
镜舟科技与中启乘数科技达成战略合作,共筑数据服务新生态  1251
grub引导程序无法找到指定设备和分区  1217
华为全联接大会2024丨软通动力分论坛精彩议程抢先看!  163
点击报名 | 京东2025校招进校行程预告  162
2024海洋能源产业融合发展论坛暨博览会同期活动-海洋能源与数字化智能化论坛成功举办  160
华为纯血鸿蒙正式版9月底见!但Mate 70的内情还得接着挖...  157
本周热议
我的信创开放社区兼职赚钱历程 40
今天你签到了吗? 27
信创开放社区邀请他人注册的具体步骤如下 15
如何玩转信创开放社区—从小白进阶到专家 15
方德桌面操作系统 14
我有15积分有什么用? 13
用抖音玩法闯信创开放社区——用平台宣传企业产品服务 13
如何让你先人一步获得悬赏问题信息?(创作者必看) 12
2024中国信创产业发展大会暨中国信息科技创新与应用博览会 9
中央国家机关政府采购中心:应当将CPU、操作系统符合安全可靠测评要求纳入采购需求 8

加入交流群

请使用微信扫一扫!