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

目录

输出结果

实现代码


输出结果

实现代码

#Py之pygame:利用pygame库实现鱼儿自动实时目标跟踪import pygame,sys
from math import *
pygame.init()
font1=pygame.font.SysFont('microsoftyaheimicrosoftyaheiui',23)
textc=font1.render('.',True,(250,0,0))
screen=pygame.display.set_mode((800,700),0,32)
missile=pygame.image.load('F:/File_Python/Resources/fish02.png').convert_alpha()
height=missile.get_height()
width=missile.get_width()
pygame.mouse.set_visible(0)
x1,y1=100,600           #鱼儿初始位置
velocity=800            #鱼儿速度
time=1/1000
clock=pygame.time.Clock()
A=()
B=()
C=()
while True:for event in pygame.event.get():if event.type==pygame.QUIT:sys.exit()clock.tick(300)x,y=pygame.mouse.get_pos()          #获取鼠标位置,鼠标就是鱼儿游过去的目标distance=sqrt(pow(x1-x,2)+pow(y1-y,2))     section=velocity*time              sina=(y1-y)/distancecosa=(x-x1)/distanceangle=atan2(y-y1,x-x1)              fangle=degrees(angle)           x1,y1=(x1+section*cosa,y1-section*sina)missiled=pygame.transform.rotate(missile,-(fangle))if 0<=-fangle<=90:A=(width*cosa+x1-width,y1-height/2)B=(A[0]+height*sina,A[1]+height*cosa)if 90<-fangle<=180:A = (x1 - width, y1 - height/2+height*(-cosa))B = (x1 - width+height*sina, y1 - height/2)if -90<=-fangle<0:A = (x1 - width+missiled.get_width(), y1 - height/2+missiled.get_height()-height*cosa)B = (A[0]+height*sina, y1 - height/2+missiled.get_height())if -180<-fangle<-90:A = (x1-width-height*sina, y1 - height/2+missiled.get_height())B = (x1 - width,A[1]+height*cosa )C = ((A[0] + B[0]) / 2, (A[1] + B[1]) / 2)screen.fill((0,0,0))screen.blit(missiled, (x1-width+(x1-C[0]),y1-height/2+(y1-C[1])))screen.blit(textc, (x,y)) pygame.display.update()

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

参考文章:

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

c++代码好玩_Py之pygame:有趣好玩—利用pygame库实现鱼儿自动实时目标跟踪(附完整代码)...相关推荐

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

    Py之pygame:有趣好玩-利用pygame库实现鱼儿自动实时目标跟踪(附完整代码) 目录 输出结果 实现代码 输出结果 实现代码 #Py之pygame:利用pygame库实现鱼儿自动实时目标跟踪i ...

  2. 利用pyecharts绘制新浪微博传播图(文末附完整代码地址)

    文章目录 任务 来龙去脉 过程 绘图代码 绘图参数分析 结点参数格式 联系参数格式 类别参数格式 总览 获取转发关系 构造数据结构 集成json文件 代码地址 任务 延续之前的爬虫任务,最初同学提出的 ...

  3. 【滤波跟踪】基于EKF、时差和频差定位实现目标跟踪附matlab代码

    1 内容介绍 三星时差无源定位系统多采用基于高程约束下时差测量值转换为距离差进行 定位,若卫星相对于辐射源存在运动,则截获到同一辐射源信号频率存在多普勒 频移.由于卫星间一直都处在运动状态,各观测站接 ...

  4. python firmata协议利用arduino操控麦克纳姆轮小车(附完整代码)

    python firmata协议利用arduino操控麦克纳姆轮小车 前言 一.python中pyfirmata的环境 材料 二.使用步骤 1.小车的安装方式 我在这采用的是X型安装方式 总结 前言 ...

  5. php 3d animation,css3D+动画的例子(附完整代码)

    本篇文章给大家带来的内容是关于css3D+动画的例子(附完整代码),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. 前言 最近玩了玩用css来构建3D效果,写了几个demo,所以博客总 ...

  6. OpenCV基本线性变换轨迹栏的实例(附完整代码)

    OpenCV基本线性变换轨迹栏的实例 OpenCV基本线性变换轨迹栏的实例 OpenCV基本线性变换轨迹栏的实例 OpenCV基本线性变换轨迹栏的实例(附完整代码) #include "op ...

  7. OpenCV差分二值化的实时场景文本检测的实例(附完整代码)

    OpenCV差分二值化的实时场景文本检测的实例 OpenCV差分二值化的实时场景文本检测的实例 OpenCV差分二值化的实时场景文本检测的实例 OpenCV差分二值化的实时场景文本检测的实例(附完整代 ...

  8. 车辆入库java程序_java扫描入库及出库,基于谷歌类开发.仅提供完整代码 连接SQL使用,...

    java扫描入库及出库,基于谷歌类开发.仅提供完整代码 连接SQL使用,需要自行制作中心服务器,中心服务器代码在本人另一实例里面,请自行下载 [实例简介] 扫描入库及出库,基于谷歌类开发.仅提供完整代 ...

  9. 单选按钮_PerlTk教程之按钮Button、复选按钮Checkbutton、单选按钮Radiobutton(附完整代码)...

    <Perl-Tk教程之按钮Button.复选按钮Checkbutton.单选按钮Radiobutton>Perl-Tk中有三种不同形式的按钮组件可供选择,它们分别是按钮(Button), ...

最新文章

  1. NVIDIA深度学习Tensor Core性能解析(下)
  2. 计算机内存作图多大合适3d,【2人回答】你好,我想问问电脑256G内存对于学生画图设计够吗?-3D溜溜网...
  3. 管理者的智慧:靠制度管人,不靠人管人
  4. android 应用程序分析之settings,Android 应用程序分析之Settings
  5. 转载:分享一下免费的ppt网站(好看,免费)
  6. Docker shipyard 试用
  7. 惠普宣布WebOS平板和手机,透露电脑计划
  8. webpack打包过程如何调试?
  9. 跟一个刚毕业不久的码农聊天后被凡尔赛了
  10. LeetCode 892. 三维形体的表面积(数学)
  11. Android热更新开源项目Tinker集成实践总结
  12. Bash脚本删除相对路径下小于指定大小的文件
  13. 如何用python处理图片_如何用python获取图像
  14. 惊!史上最佳GAN现身,超真实AI假照片,行家们都沸腾了
  15. Makefile:宏定义EXTRA_CFLAGS += -D 与CONFIG_ =y
  16. 良心推荐:40个Google Chrome扩展程序
  17. java去除网页中的广告和导航等信息_**css+html纯css怎样去除导航子菜单中的默认背景?**...
  18. N沟道MOSFET所需的高于电池的电源电压
  19. 如何打开和修改CAJ格式的文档?
  20. excel poi 加背景图_java 在Excel中插入图片 POI实现

热门文章

  1. java字符串的常量池
  2. 浅谈Android中的Handler机制
  3. NFS mount failed, reason given by server: Permission denied ---nfs挂载失败
  4. java如何爬取304_HTTP 304错误的详细讲解
  5. 枚举Enum与注解Aunotation大杂烩
  6. java城市公交查询系统案例_013JAVA.JSP城市公交查询系统.zip
  7. Linux桌面环境介绍以及优缺点分析
  8. 数据库 / 事务的 ACID
  9. boost / vs2017 编译 boost 1.68.0 的过程说明
  10. 启明云端分享|PX30核心板 怎么烧录