Python飞行追踪模拟
话不多说,上图:
飞行跟踪
代码
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飞行追踪模拟相关推荐
- 盘点一款Python二级考试模拟软件,带你轻松过关二级Python考试
最是人间留不住,朱颜辞镜花辞树. 大家好,我是Python教程入门学习.今天给大家讲的这个软件,主要是想让大家通过这个软件能将自己的Python基础进一步提高. 一.前言 相信有些小伙伴学习Pytho ...
- python轨迹追踪、全链路日志追踪trace_id实现
python轨迹追踪.全链路日志追踪trace_id实现 非链路日志(普通日志) 我收到一个请求,参数是 我收到一个请求,参数是 我收到一个请求,参数是 我收到一个请求,参数是 我收到一个请求,参数是 ...
- python软件代码示例-用Python写一个模拟qq聊天小程序的代码实例
Python 超简单的聊天程序 客户端: import socket, sys host = '10.248.27.23' # host = raw_input("Plz imput des ...
- eval?python顺序列表模拟栈实现计算器
python顺序列表模拟栈实现计算器 借助list中的append和pop模拟顺序栈的入栈和出栈 instack = {'+':1,'-':1,'*':3,'/':3,'%':3,'(':6,')': ...
- Python 模块 requests 模拟登录豆瓣 并 发表动态
如何抓取 WEB 页面:http://blog.csdn.net/chenguolinblog/article/details/45024643 github 上一个关于模拟登录的项目:https:/ ...
- python如何实现模拟登录_超详细的Python实现新浪微博模拟登陆(小白都能懂)
最近由于需要一直在研究微博的爬虫,第一步便是模拟登陆,从开始摸索到走通模拟登陆这条路其实还是挺艰难的,需要一定的经验,为了让朋友们以后少走点弯路,这里我把我的分析过程和代码都附上来. 首先,我们先用正 ...
- 能不能用python开发qq_用Python写一个模拟qq聊天小程序的代码实例
用Python写一个模拟qq聊天小程序的代码实例 发布时间:2020-09-09 07:49:29
- python项目实战:模拟登陆CSDN
2019独角兽企业重金招聘Python工程师标准>>> 前言 今天为大家介绍一个利用Python模拟登陆CSDN的案例,虽然看起来很鸡肋,有时候确会有大用处,在这里就当做是一个案例练 ...
- python网球比赛模拟_python初体验 —— 模拟体育竞技
python初体验 -->>> 模拟体育竞技 一.排球训练营 1. 简介: 模拟不同的两个队伍进行排球的模拟比赛. 2. 模拟原理: 通过输入各自的能力值(Ⅰ),模拟比赛的进行( P ...
最新文章
- [20180408]那些函数索引适合字段的查询.txt
- JVM垃圾回收算法 总结及汇总
- 【Python】append和extend的区别
- 位运算-查找数组中唯一成对的数
- QQ2007 Beta2 下载地址泄露
- statsmodels学习——使用多元回归拟合数据
- AndroidStudio安卓原生开发_Activity的启动方法_隐式启动2种方法_activity关闭---Android原生开发工作笔记83
- crc32校验算法_UDP/IP硬件协议栈设计(三):校验
- 洛谷 P3119 [USACO15JAN]草鉴定Grass Cownoisseur 解题报告
- python处理地震sac数据_地震数据SAC格式
- 快速清理C盘的四个方法
- lisp 定距等分_CAD点命令快捷键(定数等分及定距等分)
- 谈谈你对JMM的理解
- 微信10亿日活场景下,后台系统微服务架构实践
- 会员管理有哪些功能呢?
- Github常用框架集合
- 在flask中同步调用celery.task函数报错分析
- 【notes|奇点临近】chapter1
- 康托展开(hdu1430)
- Docker-三剑客之machine、compose、swam集群、visualizer监控、stack部署集群、Portainer可视化