Py之pygame:有趣好玩—利用pygame库实现鱼儿自动实时目标跟踪(附完整代码)
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()
扩展思路:比如做个无人机实时定点,抓取目标……
参考文章:
一个简单的导弹自动追踪以及实时图片旋转算法
Py之pygame:有趣好玩—利用pygame库实现鱼儿自动实时目标跟踪(附完整代码)相关推荐
- c++代码好玩_Py之pygame:有趣好玩—利用pygame库实现鱼儿自动实时目标跟踪(附完整代码)...
Py之pygame:有趣好玩-利用pygame库实现鱼儿自动实时目标跟踪(附完整代码) 目录 输出结果 实现代码 输出结果 实现代码 #Py之pygame:利用pygame库实现鱼儿自动实时目标跟 ...
- Py之pygame:有趣好玩——利用pygame库实现一个移动底座弹球的小游戏
Py之pygame:有趣好玩--利用pygame库实现一个移动底座弹球的小游戏 目录 输出结果 实现代码 输出结果 实现代码 # -*- coding: utf-8 -*-#Py之pygame:有趣好 ...
- pygame小游戏代码_Py之pygame:有趣好玩——利用pygame库实现一个移动底座弹球的小游戏...
Py之pygame:有趣好玩--利用pygame库实现一个移动底座弹球的小游戏 目录 输出结果 实现代码 输出结果 实现代码 # -*- coding: utf-8 -*-#Py之pygame:有 ...
- 利用pyecharts绘制新浪微博传播图(文末附完整代码地址)
文章目录 任务 来龙去脉 过程 绘图代码 绘图参数分析 结点参数格式 联系参数格式 类别参数格式 总览 获取转发关系 构造数据结构 集成json文件 代码地址 任务 延续之前的爬虫任务,最初同学提出的 ...
- python firmata协议利用arduino操控麦克纳姆轮小车(附完整代码)
python firmata协议利用arduino操控麦克纳姆轮小车 前言 一.python中pyfirmata的环境 材料 二.使用步骤 1.小车的安装方式 我在这采用的是X型安装方式 总结 前言 ...
- py之textgenrnn:Python利用textgenrnn库实现训练文本生成网络
py之textgenrnn:Python利用textgenrnn库实现训练文本生成网络 目录 输出结果 实现代码 输出结果 实现代码 #textgenrnn:利用textgenrnn实现训练文本生成网 ...
- 车辆入库java程序_java扫描入库及出库,基于谷歌类开发.仅提供完整代码 连接SQL使用,...
java扫描入库及出库,基于谷歌类开发.仅提供完整代码 连接SQL使用,需要自行制作中心服务器,中心服务器代码在本人另一实例里面,请自行下载 [实例简介] 扫描入库及出库,基于谷歌类开发.仅提供完整代 ...
- STM32+MAX6675利用io口模拟SPI获取实时温度数据程序及代码
STM32+MAX6675利用io口模拟SPI获取实时温度数据程序及代码 本文采用的芯片为STM32F103RCT6 温度芯片为MAX6675 因为芯片的spi口只有3个,有部分需要外接W25Q128 ...
- 利用OpenCV、Python和Ubidots构建行人计数器程序(附完整代码)
作者 | Jose Garcia 译者 | 吴振东 校对 | 张一豪.林亦霖,编辑 | 于腾凯 来源 | 数据派(ID:datapi) 导读:本文将利用OpenCV,Python和Ubidots来编写 ...
最新文章
- matlab肌电信号平滑滤波_BCIduino 滤波和频谱计算操作
- SSH深度历险(六) 深入浅出----- Spring事务配置的五种方式
- 联想笔记本降万元抢学生市场,兄弟们快抢啊
- DSP专家给你一个选择FPGA的理由(让人看了热血沸腾的一篇科普文章)
- 二维大地电磁有限元数值模拟矩形+线性插值
- php安全编程—sql注入攻击
- 线性表的动态顺序存储和实现(C语言实现)【线性表】(4)
- [python进阶]11接口:从协议到抽象基类
- 微型计算机简化结构,基于FPGA的简易微型计算机结构分析与实现
- 使用Fiddler对android应用抓包 专题
- softmax回归的从零开始实现-09-p4
- python停用词表整理_python停用词表
- 小米进军欧洲智能手机市场:一面是狂欢,一面是考验...
- 谈一谈机器学习的基本原理
- java满天星星闪烁_夜空当中满天的星星为什么会闪烁?
- 我变了?“我”没变!
- python函数(一)——def语句,作用域和参数
- 技术博客|第8期:广告流量匹配算法在Hulu/Disney Streaming平台的实战
- C++ opencv 识别火焰 (代码)
- MATLAB与SolidWorks联合仿真(1)
热门文章
- Java 多线程(四)—— 单例模式
- vs与git中间的阻拦--Git failed with a fatal error. error: open(“.vs/GBA/v16/Server/sqlite3/db.lock
- CentOS 7安装Keepalived
- wxpython嵌套panel布局的一个问题
- shell中while循环案例
- 写了一个 SSO 单点登录的代码示例给胖友!
- 面试官给我挖坑:rm删除文件之后,空间就被释放了吗?
- 阿里P9架构师分享:通俗易懂Redis原理,都是你没看过的
- 从零单排学Redis【铂金二】
- 8 张图,看你是否理解 Java