2022年第十一届数学建模国际赛小美赛A题翼龙如何飞行解题全过程文档及程序

news2024/11/23 2:04:38

2022年第十一届数学建模国际赛小美赛

A题 翼龙如何飞行

原题再现:

  翼龙是翼龙目中一个已灭绝的飞行爬行动物分支。它们存在于中生代的大部分时期:从三叠纪晚期到白垩纪末期。翼龙是已知最早进化出动力飞行的脊椎动物。它们的翅膀是由皮肤、肌肉和其他组织膜形成的,这些组织从脚踝延伸到显著延长的第四根手指[1]。
  翼龙有两种主要类型。基底翼龙是体型较小的动物,通常有全齿颚和长长的尾巴。它们宽阔的翅膜可能包括并连接后腿。在地面上,它们会有一个尴尬的伸展姿势,但它们的关节解剖结构和强壮的爪子会使它们成为有效的攀爬者,而且它们可能生活在树上。基生翼龙是小型脊椎动物的食虫动物或捕食者。后来翼龙(翼龙目)进化出许多体型、形状和生活方式。翼龙的翅膀较窄,后肢自由,尾巴高度缩小,脖子较长,头部较大。在地面上,翼龙的四肢都走得很好,姿态直立,后脚直立,翼指向上折叠,在三指“手”上行走。化石轨道表明,至少有一些物种能够奔跑、涉水或游泳[2]。
  翼龙身上有一层被称为比重瓶纤维的毛发状细丝,覆盖着它们的身体和翅膀的一部分[3]。在生活中,翼龙会有光滑或蓬松的皮毛,与鸟类的羽毛不同。早期的说法是,翼龙在很大程度上是冷血动物,像现代蜥蜴一样从环境中获得温暖,而不是燃烧卡路里。然而,后来的研究表明,它们可能是温血(吸热)、活跃的动物。呼吸系统使用气囊进行有效的单向“流通”呼吸,气囊将骨骼挖空到极致。翼龙的成年体型多种多样,从非常小的无颌类到已知最大的飞行生物,包括翼展至少9米的Quetzalcoatlus和Hatzegopteryx[4][5]。吸热、良好的氧气供应和强壮的肌肉相结合,使翼龙成为强大而能干的飞行者。
  翼龙飞行的机制目前还没有完全理解或建模。佐藤胜富美利用现代鸟类进行了计算,得出结论认为翼龙不可能在高空停留[6]。在《翼龙的姿态、运动和古生态学》一书中,有理论认为翼龙之所以能够飞行,是因为白垩纪晚期富含氧气、稠密的大气层[7]。然而,佐藤和《翼龙的姿态、运动和古生态学》一书的作者的研究都基于翼龙类海鸟的过时理论,而体型限制不适用于陆生翼龙,如阿志达翼龙和带翅翼龙。此外,Darren Naish得出结论,巨型翼龙不需要现在和中生代之间的大气差异[8]。
  另一个很难理解的问题是翼龙是如何起飞的。如果翼龙是冷血动物,那么体型巨大、冷血动物代谢效率低下的大型翼龙如何能够实现类似鸟类的起飞策略,只使用后肢产生推力,从而升空,目前尚不清楚。后来的研究表明,它们是温血动物,拥有强大的飞行肌肉,并使用飞行肌肉作为四足动物行走[9]。朴茨茅斯大学的Mark Witton和约翰·霍普金斯大学的Mike Habib认为翼龙使用跳跃机制来获得飞行[10]。它们翅膀前肢的巨大力量将使它们能够轻松起飞[9]。翼龙一旦升空,速度可达120公里/小时,飞行数千公里[10]。
  您的团队被要求根据化石测量,为至少一种大型翼龙的飞行过程建立一个合理的数学模型,并回答以下问题。

  1.对于您选择的翼龙物种,估计其正常飞行期间的平均速度。

  2.对于你选择的翼龙物种,估计它在正常飞行中的翅膀拍打频率。

  3.研究大型翼龙是如何起飞的;它们有可能像平地或水面上的鸟一样起飞吗?定量解释原因。

整体求解过程概述(摘要)

  翼龙的飞行原理一直困扰着进化生物学家。巨大的面积,再加上化石保存不善,使得对翼龙飞行的解释成了问题,而且常常引起争议。
  为了研究翼龙飞行的主题,我们创建了三个空气动力学模型,如下所示:

  模型一:滑动模型;
  模型二:机翼颤振模型;
  模型三:四足发射起飞模型。

  在模块I中,我们使用运动方程(EOM)来描述翼龙向下滑翔的动力学过程。该模型的约束条件主要是翼龙的重量和翼尖距地面或海面的高度。考虑到直接求解以函数为变量的优化问题具有挑战性,本文采用配点法。我们建立了步长为1s的离散点来描述翼龙在每个时刻的飞行状态。产生的滑动轨迹是一条平滑的曲线。
  在模块二中,根据EOMs和叶片单元理论,建立了基于颤振角和扭转角的机翼颤振模型。考虑到周期边界飞行姿态的约束,我们假设翼龙将上升到其原始高度。我们计算了翼龙在拍动翅膀时的运动状态的变化。
  基于相关文献和上述模型,本文提出了一个包含滑翔和颤振起飞的翼龙两级飞行模型。模型中的一个周期被假定为由滑动和连续拍打组成。通过计算机模拟,我们确定翼龙和格查尔亚特龙的平均速度分别为38.65m/s和42.49m/s,拍动频率分别为1.06Hz和0.83Hz。
  在模块III中,我们假设以下起飞程序:翼龙使用四足发射,然后在达到一定高度后利用空气动力爬升。建立参数后,模型模拟翼龙拍打翅膀和起飞的过程,评估其飞行趋势,判断其是否具备起飞的必要条件。
  模拟结果表明,翼龙和格查尔阿特拉斯四足动物在平地上发射后,可以借助上升气流起飞。而由于支撑力不足,水面阻力大,使得格查尔亚特鱼几乎不可能在水面上起飞,而翼龙则可以在特定角度上起飞。
  为了测试对空气密度的敏感性,我们还评估了在高空气密度环境中的飞行性能。总体而言,我们的结果对空气密度不确定性具有鲁棒性。分析表明,该模型对升力系数等关键参数具有较强的鲁棒性。

模型假设:

  通过对问题的全面分析,为了简化我们的模型,我们做出以下合理的假设。

  •假设1:所有相关文献中的翼龙化石数据和根据化石估计的身体数据都是可靠的,并且在允许的误差范围内。
  理由:所有化石数据都经过精确测量,所得数据可靠。现代三维重建方法[7]可以通过三维建模恢复恐龙的结构和外观,得到准确的恢复数据。

  •假设2:风向沿y轴,风速仅取决于海拔高度
  理由:在离地面不到400米的天空中,风向可以近似地视为与地面平行,风速取决于海拔高度[8]。然后我们可以人为地把风向作为y轴的正方向。

  •假设3:在大型翼龙的正常飞行过程中,翼龙使用一种飞行策略,先拍打翅膀升起,然后滑动一段距离。以一次上升和一次下滑为周期,周期开始和结束时的高度基本不变。
  理由:现存最大的鸟——秃鹫gryphus,翼展为5米,使用与上述类似的飞行策略,这是节省能源和增加飞行距离的最佳方式[9]。

  •假设4:在滑翔和拍打阶段,关节点的姿态移动是瞬时的。
  理由:扑翼阶段的过程比较复杂。翼龙会调整它的姿态来完成上升。这种姿态变化可视为飞行过程中的突然变化。

问题重述:

问题背景

  翼龙是一种已经灭绝的爬行动物,有近100种。尽管翼龙和恐龙生活在同一个时代,但它们不是恐龙。
  因为它们太大了,所以关于它们是否不能飞,或者如果能够飞,它们可能的功率能力、起飞方法和飞行特性可能是什么,也有争论。
  本课题组选取了两种具有代表性的翼龙——无齿翼龙和无齿翼龙作为研究对象。Quetzalcatlus是一种存在于晚白垩世晚期的翼手目动物,是已知最大的飞行动物。无齿翼龙是翼展为7-9米的翼龙,生活在公元前70-65百万年前的晚白垩世[1]。
  根据化石测量数据和建立的模型,可以更合理地量化两种翼龙的飞行能力。然后测定了这两种翼龙在正常飞行时的平均速度和翼瓣频率,判断它们是否有可能像鸟一样在平地或水面上起飞。
在这里插入图片描述
  问题重述

  考虑到问题陈述中确定的背景信息和限制条件,我们需要开发模型来评估两只翼龙的飞行能力,并解决以下问题:
  •问题1:通过化石和相关研究恢复选定翼龙的身体数据,并建立模型预测翼龙正常飞行时的速度。
  •问题2:根据前面问题中获得的模型和机翼颤振模型,计算所选翼龙的机翼襟翼频率。
  •问题3:讨论选定的大型翼龙是如何起飞的,以及它们是否可以像鸟一样在平地或水面起飞。

  相关工作

  翼龙一直是古生物学研究的热点。然而,随着翼展为5−7米的翼龙的发现,人们开始关注大型翼龙的飞行。
  但已经灭绝的动物的运动能力只能用有限的方法来评估。直接的实验是不可能的,所以分析必须依赖于对生物形态的功能类比和对保存下来的结构的生物力学分析。就翼龙而言,必须对现代滑翔机和飞行器的飞行能力进行评估[3]。
  近几十年来,人们在巴西早白垩世发现了精美的三维翼龙化石骨架,并保存了软组织,这为翼龙的飞行能力提供了重要的见解。
  19世纪中期,人们开始用工程学的方法研究人造机器的动力飞行,随后就开始讨论翼龙飞行的力学和空气动力学[6]。对翼龙飞行的讨论主要分为三个阶段:19世纪至20世纪中叶的早期描述,20世纪70年代和80年代的新活动,以及最近的空气动力学建模方法。

模型的建立与求解整体论文缩略图

在这里插入图片描述
在这里插入图片描述

全部论文请见下方“ 只会建模 QQ名片” 点击QQ名片即可

部分程序代码:(代码和文档not free)

1 clear;
2 clc;
3 v=[]; v(1)=10; %initial speed
4 gma=[]; gma(1)=0;
5 psi=[]; psi(1)=0;
6 x=[]; x(1)=0;
7 y=[]; y(1)=0;
8 h=[]; h(1)=200;
9 z=[];
10 m=18.6; %quality
11 Sw=2.26; %wing area
12 b=5.34; %span
13 w10=25; %basic wind speed
14 CL=1.6;
15 rho=1.23;
16 phi=0;
17 L=[]; L(1)=abs(0.5*rho*CL*Sw*v(1)^2);
18 Cdpro=0.014;
19 g=9.8;
20 k=1.1;
21 pi=3.14;
22 hmin=0.03;
23 i=1;
24 t=0.01;
25 W=[];
26 D=[];
27 a=h(1);
28 while(L(i)<=(m*g*3) && h(i)>0.5 && a>0)
29 D(i) = 0.5*rho*Cdpro*Sw*v(i)^2+0.5*rho*0.01*Sw*v(i)^2+(rho*k*(CL*Sw*v(i
))^2)/(2*pi*b^2);
30 W(i) = w10*log(h(i)/hmin)/log(10/hmin);
31 x(i+1) = v(i)*cos(gma(i))*cos(psi(i))*t+x(i);
32 y(i+1) = (v(i)*cos(gma(i))*sin(psi(i))-W(i))*t+y(i);
33 z(i) = (-v(i)*sin(gma(i)))*t;
34 h(i+1) = h(i)+z(i);
35 gma(i+1) = (L(i)*cos(phi)-m*g*cos(gma(i))+m*(w10*(-v(i))*sin(gma(i))/(
log(10/hmin)*h(i)))*sin(gma(i))*sin(psi(i)))*t/(m*v(i))+gma(i);
36 psi(i+1) = (L(i)*sin(phi)+m*(w10*(-v(i))*sin(gma(i))/(log(10/hmin)*h(i)
))*cos(psi(i)))*t/(m*v(i)*cos(gma(i)))+psi(i);
37 v(i+1) = (-D(i)+m*g*sin(gma(i))+m*(w10*(-v(i))*sin(gma(i))/(log(10/hmin
)*h(i)))*cos(gma(i))*sin(psi(i)))*t/m+v(i);
38 L(i+1) = 0.5*rho*CL*Sw*v(i)^2;
39 i = i+1;
40 fprintf(’%d’, v(i));
41 a = h(i)-b/2*abs(sin(phi))*cos(gma(i));
42 end
43 T = i*t
44 scatter3(x, y, h, ’p’);
45 xlabel(’X’), ylabel(’Y’), zlabel(’Z’);
46 grid on;
1 clear;
2 clc
;
3 v=[]; 4 v(1)=15.8121;
%initial speed
5 rou=1.23; 6 Cdpro=0.014; 7 m=18.6; %quality 8 g=9.8; 9 Sw=2.26; %wing area
10 CL=1.6;
11 k=1.1;
12 pai=3.14;
13 b=5.34;
%span
14 hmin=0.03;
15 w10=25;
%basic wind speed
16 i=1;
17 t=0.01;
18 L=[];
19
20 W=[];
21 phi=0;
22 gma=[];
23 gma(1)=1.283;
24 psi=[];
25
%psi(1)=-0.0176;
26 psi=-0.0267;
27 x=[];
28 x(1)=22.5759;
29 y=[];
30 y(1)=-88.6534;
31 z=[];
32 h=[];
33 h(1)=189.752;
34 D=[];
35 a=h(1);
36
37 n=[-b/2:0.01:b/2];
38 ky=[];
39 sum=0;
40 for d=1:(b/(2
*0.01))+1
41 ky(d)=-0.2
*n(d)^2+0.2
*b^2;
42 sum=ky(d)+sum
;
43 end
44 lambda=2
*sum/(b/0.01+1);
45
46 t_pudong=0.5;
47 theta_Max=45;
48 theta0=0;
49 theta=[];
50 dao_theta=[];
51
52 beta_Max=15;
53 beta0=0;
54 beta=[];
55 dao_beta=[];
56 f=4.96;
57 omega=[];
58 v_xiangdui=[];
59 yingjiao=[];
60 z_yingjiao=[];
61 Fnc=[];
62 Fna=[];
63 Fdf=[];
64 bianhua=[];
65 bianhua(1)=0;
66
67 for i=1:f*t_pudong/0.01
68 for j=1:(b/0.01)+1
69 Fnc(i)=0;
70 Fna(i)=0;
71 Fdf(i)=0;
72 t=i*0.01;
73 theta(i,j)=45*cos(2*pai*f*t)+theta0;
74 dao_theta(i,j)=2*n(j)*pai*f*theta_Max*(2*pai*f*t);
75 beta(i,j)=n(j)*(beta_Max*cos(2*pai*f*t)+beta0)/b;
76 dao_beta(i,j)=-0.25*((-0.2)*n(j)^2+0.2*b^2)*(2*pai*f*abs(n(j))*
beta_Max*cos(2*pai*f*t))/b;
77 omega(i,j)=(2*(0+2+beta(i,j))*v(i))/(2+lambda);
78 v_xiangdui(i,j)=(((dao_theta(i,j)-dao_beta(i,j))*cos(2+beta(i,j))-
omega(i,j))^2+(v(i)+(dao_theta(i,j)-dao_beta(i,j))*sin(2+beta(i,j)))^2)
^(1/2);
79 yingjiao(i,j)=atan(((dao_theta(i,j)-dao_beta(i,j))*cos(2))/(v(i)+(
dao_theta(i,j)-dao_beta(i,j))*sin(2)));
80 z_yingjiao(i,j)=yingjiao(i,j)+theta(i,j)+2;
81 Nc(i,j)=0.5*rou*v_xiangdui(i,j)^2*2*pai*z_yingjiao(i,j)*(-0.2*n(j)
^2+0.2*b^2)*0.00001;
82 Fnc(i)=abs(Nc(i,j)*0.00001)+Fnc(i);
83 ax(i,j)=abs(n(j))*4*pai^2*f^2*45*cos(2*pai*f*t)+bianhua(i)*sin(2+
beta(i,j))+v(i)*cos(2+beta(i,j))+0.5*((-0.2)*n(j)^2+0.2*b^2)*(-n(j)*
beta_Max*4*pai^2*f^2*cos(2*pai*f*t)/b);
84 Na(i,j)=0.25*rou*pai*(-0.2*n(j)^2+0.2*b^2)^2*ax(i,j);
85 Fna(i)=Na(i,j)*0.001+Fna(i);
86 Df(i,j)=0.664*(z_yingjiao(i,j))*(v(i)*cos(2+beta(i,j))+omega(i,j)*
sin(2+beta(i,j)));
87 Fdf(i)=Df(i,j)*0.001+Fdf(i);
88 end
89 t=0.01;
90 W(i)=w10*log(h(i)/hmin)/log(10/hmin);
91 x(i+1)=v(i)*cos(gma(i))*cos(psi(i))*t+x(i);
92 y(i+1)=(v(i)*cos(gma(i))*sin(psi(i))-W(i))*t+y(i);
93 z(i)=(-v(i)*sin(gma(i)))*t;
94 h(i+1)=h(i)-z(i);
95
96 gma(i+1)=(Fnc(i)*cos(phi)-(m*g+Fna(i))*cos(gma(i))+(m+Fna(i)/9.8)*(w10
*(-v(i))*sin(gma(i))/(log(10/hmin)*h(i)))*sin(gma(i))*sin(psi(i)))*t/(m*
v(i))+gma(i);
97 psi(i+1)=(Fnc(i)*sin(phi)+(m+Fna(i)/9.8)*(w10*(-v(i))*sin(gma(i))/(log
(10/hmin)*h(i)))*cos(psi(i)))*t/(m*v(i)*cos(gma(i)))+psi(i);
98 v(i+1)=(Fdf(i)+(m*g+Fna(i))*sin(gma(i))+(m+Fna(i)/9.8)*(w10*(-v(i))*sin
(gma(i))/(log(10/hmin)*h(i)))*cos(gma(i))*sin(psi(i)))*t/m+v(i);
99 a=h(i)-b/2*abs(sin(phi))*cos(gma(i));
100 bianhua(i+1)=(v(i+1)-v(i))/0.01;
101 if(h(i)>200.5||a<0)
102 break;
103 end
104 end
105 scatter3(x,y,h,’p’);
106 xlabel(’X’),ylabel(’Y’),zlabel(’Z’);
107 grid on;
1 clc;
2 clear;
3 data=xlsread(’sensitivity analysis.xlsx’);
4 x=data(:,1);
5 y=data(:,2);
6 z=data(:,3);
7 scatter3(x,y,z)
8 figure
9 [X,Y,Z]=griddata(x,y,z,linspace(min(x),max(x))’,linspace(min(y),max(y)),’v4
’);
10 pcolor(X,Y,Z);shading interp
11 figure,contourf(X,Y,Z)
12 figure,surf(X,Y,Z);
13 figure,meshc(X,Y,Z)
14 view(0,0);
15 figure,meshc(X,Y,Z);
全部论文请见下方“ 只会建模 QQ名片” 点击QQ名片即可

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1288433.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【踩坑记录】from natten import NeighborhoodAttention1D

在配置forecast-mae环境的时候。 ./forecast-mae/src/model/layers/agent_embedding.py文件中 导入包的时候from natten import NeighborhoodAttention1D 报错&#xff0c; 解决办法&#xff0c;默认安装的是__version__ "0.14.2"版本的 出现这个问题可能是包损坏…

介绍一款在线文件格式转换工具

原因: 今天要将一个pdf格式的文件转为docx格式,结果我用破解版的WPS无法再不登录的情况下转换,所以就搜索了一款在线工具实现功能。 网站地址: Convertio — 文件转换器 使用流程: 1)选择要转换的文件 2)选择要转换的格式 3)点击转换 4)等待上传 5)等待转换 6)下载到本地

易点易动设备管理系统--提升设备备品备件管理效率的工具

设备备品备件管理是市场推广人员关注的重要问题之一。为了帮助市场推广人员提升设备备品备件管理效率&#xff0c;易点易动设备管理系统应运而生。本文将详细介绍易点易动设备管理系统的功能和优势&#xff0c;以及如何借助该系统提高设备备品备件管理效率&#xff0c;提升企业…

uniapp使用vue-i18n国际化多国语言

前言&#xff1a;uniapp是自带有i18n这个插件的&#xff0c;如果没有npm安装即可 此插件需要自己去给每一个需要国际化的字符去手动配置key&#xff0c;所以如果是已经完成的项目可能工作量就稍微有点大了 第一步&#xff1a; 语言命名是有规范的不能乱取名&#xff0c;具体可…

【SpringCloud】通过Redis手动更新Ribbon缓存来解决Eureka微服务架构中服务下线感知的问题

文章目录 前言1.第一次尝试1.1服务被调用方更新1.2压测第一次尝试1.3 问题分析1.4 同步的不是最新列表 2.第二次尝试2.1调用方过滤下线服务2.2压测第二次尝试2.3优化 写到最后 前言 在上文的基础上&#xff0c;通过压测的结果可以看出&#xff0c;使用DiscoveryManager下线服务…

springboot——自动装配

自动装配 Condition: Condition内置方法&#xff1a;boolean matches(ConditionContext context, AnnotatedTypeMetadata metadata)&#xff0c;返回值为布尔型 重写matches方法的类&#xff1a;SpringBootCondition等 SpringBootCondition&#xff1a;springboot自带的实现类…

4.数据库

目录 一、数据库的基本信息 1.1 数据库的定义 1.2数据库的分类 1.2.1 关系型数据库 1.2.2 非关系型数据库 1.3 SQL介绍 1.3.1 概念 1.3.2 SQl语言分类 1.3.3 SQL注释 1.3.4 数据库操作命令DDL 1.3.5 数据表操作命令DDL 1.3.6 数据表操作命令DML 1.3.7 数据表中内容…

电容电感特性的理解

04730电子技术基础 语雀 在前面&#xff0c;我们提到过电容元件具有隔直通交&#xff0c;通高阻低的特性&#xff0c;电感元件具有隔交通直&#xff0c;通低阻高的特性。那么如何理解这两句话呢&#xff1f;下面我们一一剖析 电容元件的隔直通交&#xff0c;通高阻低的特性 …

Faster Transformer

Faster Transformer FasterTransformer包含transformer块的高度优化版本的实现&#xff0c;该块包含编码器和解码器部分。基于高效率的开发语言和工具&#xff1a; C, CUDA, cuBLAS and cuBLASlt支持的模型数据格式&#xff1a;FP32, FP16, BF16, INT8 (limited models) and F…

智能优化算法应用:基于人工水母算法无线传感器网络(WSN)覆盖优化 - 附代码

智能优化算法应用&#xff1a;基于人工水母算法无线传感器网络(WSN)覆盖优化 - 附代码 文章目录 智能优化算法应用&#xff1a;基于人工水母算法无线传感器网络(WSN)覆盖优化 - 附代码1.无线传感网络节点模型2.覆盖数学模型及分析3.人工水母算法4.实验参数设定5.算法结果6.参考…

C语言-详解指针

目录 一.内存 1.内存的定义 2.内存的结构图 二.地址 1.什么是地址 2.什么是变量的地址 三.什么是指针 1.指针的定义 四.如何获取数据存储空间的地址 1.&运算符 五.指针变量 1.什么是指针变量&#xff08;一级指针变量&#xff09; 2.指针变量的定义 3…

Opencv库如何检测图片中鸡蛋数量

Opencv库检测图片中鸡蛋数量 由于需要写一个检测鸡蛋数量的程序&#xff0c;用了几个opencv中的经典方法&#xff0c;实现了图片中鸡蛋的检测。在一步步实现的同时&#xff0c;同时说明每个方法的用途。希望能给学习opencv的小伙伴一些帮助。下图为原始图和实现后的检测边框。…

ubuntu20.04找不到#include<opencv/cv.h>文件

编译ROS包的时候出现错误&#xff1a;fatal error&#xff1a;opencv/cv.h : No such file or directory #include<opencv/cv.h> 查看opencv4版本&#xff1a; pk-config --modversion opencv4: 在opencv4中opencv2的cv.h融合进了imgproc.hpp里: 把源码中的#include …

字节跳动开源基于SD1.5的 MagicAnimate 一张照片秒变真人舞蹈视频

项目地址&#xff1a;https://github.com/magic-research/magic-animate 显卡要求&#xff1a;12G MagicAnimate是一项利用先进的扩散模型实现人体图像动画的创新性项目。其核心优势在于确保生成内容的时间一致性&#xff0c;通过提供预训练的稳定扩散V1.5和MSE微调的VAE基础…

Python-炸弹人【附完整源码】

炸弹人 炸弹人是童年的一款经典电子游戏&#xff0c;玩家控制一个类似"炸弹人"的角色&#xff0c;这个角色可以放置炸弹&#xff0c;并在指定的时间内引爆它们消灭敌人以达到目标&#xff0c;此游戏共设有两节关卡&#xff0c;代码如下&#xff1a; 运行效果&#x…

Qt/C++视频监控拉流显示/各种rtsp/rtmp/http视频流/摄像头采集/视频监控回放/录像存储

一、前言 本视频播放组件陆陆续续写了6年多&#xff0c;一直在持续更新迭代&#xff0c;视频监控行业客户端软件开发首要需求就是拉流显示&#xff0c;比如给定一个rtsp视频流地址&#xff0c;你需要在软件上显示实时画面&#xff0c;其次就是录像保存&#xff0c;再次就是一些…

22、pytest多个参数化的组合

官方实例 # content of test_multi_parametrie.py import pytestpytest.mark.parametrize("x",[0,1]) pytest.mark.parametrize("y",[2,3]) def test_foo(x,y):print("{}-{}".format(x,y))pass解读与实操 要获得多个参数化参数的所有组合&…

vue3里面使用ref和toRef、toRefs

vue3 里面我们经常会使用ref()来接受内部值&#xff0c;返回一个响应式的对象。创建可以使用任何类型的响应式ref。这里对象是响应式的&#xff0c;可以进行更改的&#xff0c;对象有一个value属性&#xff0c;其值就是所传递的原始值。ref() 将传入参数的值包装为一个带 .valu…

【链表Linked List】力扣-83 删除排序链表中的重复元素

目录 题目描述 解题过程 题目描述 给定一个已排序的链表的头 head &#xff0c; 删除所有重复的元素&#xff0c;使每个元素只出现一次 。返回 已排序的链表 。 示例 1&#xff1a; 输入&#xff1a;head [1,1,2] 输出&#xff1a;[1,2]示例 2&#xff1a; 输入&#xff1…

【每日OJ —— 94. 二叉树的中序遍历】

每日OJ —— 94. 二叉树的中序遍历 1.题目&#xff1a;94. 二叉树的中序遍历2.解法2.1.算法讲解2.2.代码实现2.3.提交通过展示 1.题目&#xff1a;94. 二叉树的中序遍历 2.解法 2.1.算法讲解 1.首先如果在每次每个节点遍历的时候都去为数组开辟空间&#xff0c;这样的效率太低…