2024最新Python面试题目,用 Python 实现导弹自动追踪,超燃,view事件分发面试

本文通过Python的pygame库演示了导弹自动追踪目标的算法,利用时间片计算导弹旋转角度。在代码实现中,讨论了旋转图片时的位置调整问题,并提供了详细的解决方案。此外,还分享了个人的编程经历及Python学习资源。
摘要由CSDN通过智能技术生成

775f83d16c71cc0a766544ba575db343.png

只要一直反复循环执行这个操作即可,好吧,为了更形象,把第一个时间片和第二个时间片放在一起看看:

faaa334dfee54dd1db75e7d294837570.png

第一个是时间片构造出的三角形是ABE,经过一个时间片后,目标从B点走到了D点,导弹此时在C点,于是构造新的三角形CDF,重复刚才的计算过程即可,图中的角∠b就是导弹需要旋转的角度,现实中只需要每个时间片修正导弹的方向就可以了,具体怎么让导弹改变方向,这就不是我们需要研究的问题了

好,由于最近在用Python的pygame库制作小游戏玩,接下来我们就用pygame来演示一下这个效果,效果如下图:

6d4412ceb817ee85008427d74b84ddb5.gif

很简单的代码如下:

import pygame,sys

from math import *

pygame.init()

screen=pygame.display.set_mode((800,700),0,32)

missile=pygame.image.load(‘element/red_pointer.png’).convert_alpha()

x1,y1=100,600           #导弹的初始发射位置

velocity=800            #导弹速度

time=1/1000             #每个时间片的长度

clock=pygame.time.Clock()

old_angle=0

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)/distance

cosa&

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值