话不多说,上图:

飞行跟踪

代码

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('rect1.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()

Python飞行追踪模拟相关推荐

  1. 盘点一款Python二级考试模拟软件,带你轻松过关二级Python考试

    最是人间留不住,朱颜辞镜花辞树. 大家好,我是Python教程入门学习.今天给大家讲的这个软件,主要是想让大家通过这个软件能将自己的Python基础进一步提高. 一.前言 相信有些小伙伴学习Pytho ...

  2. python轨迹追踪、全链路日志追踪trace_id实现

    python轨迹追踪.全链路日志追踪trace_id实现 非链路日志(普通日志) 我收到一个请求,参数是 我收到一个请求,参数是 我收到一个请求,参数是 我收到一个请求,参数是 我收到一个请求,参数是 ...

  3. python软件代码示例-用Python写一个模拟qq聊天小程序的代码实例

    Python 超简单的聊天程序 客户端: import socket, sys host = '10.248.27.23' # host = raw_input("Plz imput des ...

  4. eval?python顺序列表模拟栈实现计算器

    python顺序列表模拟栈实现计算器 借助list中的append和pop模拟顺序栈的入栈和出栈 instack = {'+':1,'-':1,'*':3,'/':3,'%':3,'(':6,')': ...

  5. Python 模块 requests 模拟登录豆瓣 并 发表动态

    如何抓取 WEB 页面:http://blog.csdn.net/chenguolinblog/article/details/45024643 github 上一个关于模拟登录的项目:https:/ ...

  6. python如何实现模拟登录_超详细的Python实现新浪微博模拟登陆(小白都能懂)

    最近由于需要一直在研究微博的爬虫,第一步便是模拟登陆,从开始摸索到走通模拟登陆这条路其实还是挺艰难的,需要一定的经验,为了让朋友们以后少走点弯路,这里我把我的分析过程和代码都附上来. 首先,我们先用正 ...

  7. 能不能用python开发qq_用Python写一个模拟qq聊天小程序的代码实例

    用Python写一个模拟qq聊天小程序的代码实例 发布时间:2020-09-09 07:49:29

  8. python项目实战:模拟登陆CSDN

    2019独角兽企业重金招聘Python工程师标准>>> 前言 今天为大家介绍一个利用Python模拟登陆CSDN的案例,虽然看起来很鸡肋,有时候确会有大用处,在这里就当做是一个案例练 ...

  9. python网球比赛模拟_python初体验 —— 模拟体育竞技

    python初体验 -->>> 模拟体育竞技 一.排球训练营 1. 简介: 模拟不同的两个队伍进行排球的模拟比赛. 2. 模拟原理: 通过输入各自的能力值(Ⅰ),模拟比赛的进行( P ...

最新文章

  1. [20180408]那些函数索引适合字段的查询.txt
  2. JVM垃圾回收算法 总结及汇总
  3. 【Python】append和extend的区别
  4. 位运算-查找数组中唯一成对的数
  5. QQ2007 Beta2 下载地址泄露
  6. statsmodels学习——使用多元回归拟合数据
  7. AndroidStudio安卓原生开发_Activity的启动方法_隐式启动2种方法_activity关闭---Android原生开发工作笔记83
  8. crc32校验算法_UDP/IP硬件协议栈设计(三):校验
  9. 洛谷 P3119 [USACO15JAN]草鉴定Grass Cownoisseur 解题报告
  10. python处理地震sac数据_地震数据SAC格式
  11. 快速清理C盘的四个方法
  12. lisp 定距等分_CAD点命令快捷键(定数等分及定距等分)
  13. 谈谈你对JMM的理解
  14. 微信10亿日活场景下,后台系统微服务架构实践
  15. 会员管理有哪些功能呢?
  16. Github常用框架集合
  17. 在flask中同步调用celery.task函数报错分析
  18. 【notes|奇点临近】chapter1
  19. 康托展开(hdu1430)
  20. Docker-三剑客之machine、compose、swam集群、visualizer监控、stack部署集群、Portainer可视化

热门文章

  1. python制作心形照片墙_这个七夕节,用Python为女友绘制一张爱心照片墙吧!
  2. 【学习笔记】AIO-3399J之简介
  3. 耳麦有杂音(电流声)的解决方法
  4. win 10查看wifi密码
  5. 两个组件绑定vuex中相同的状态值,但是一个组件改变的时候,另一个组件中的值同步改变了,但是页面没有更新
  6. 基于无人机的频谱监测方案
  7. python——魔术方法
  8. 联想g470散热_联想G470风扇声音很大怎么处理,散热也不好了。
  9. 华为荣耀20和x10比较_华为Mate 20与荣耀X10哪个好
  10. 引体向上高级技巧:停顿式引体向上!