桌面小火箭的实现逻辑

桌面小火箭的实现逻辑

01.判断火箭进入提示框的逻辑

a.看小火箭的中心点是否进入火箭提示框
b.火箭的中心点:左上角坐标,火箭宽度一般,高度的一般
    获得火箭原点坐标
            int[] arr=new int[2];
            对象.getLocationOnScreen(arr);//底层是c语言写的
            int rocketX=arr[0];
            int rocketY=arr[1];
c.优化操作
    在全局定义bo0lean值.
    判断是否进入提示框区域,如果进入就改变boolean值
    判断是否进入提示框区域,如果出来就改变boolean值
    后面,拿着boolean值,判断是否执行逻辑

02.小火箭的发射操作

a. 判断小火箭松开的时候,是否在提示框当中
    如果小火箭在提示框,就吟唱提示框,同事小火箭居中
    如果小火箭不在提示框,靠边,隐藏小火箭
b.发射火箭:采用的是 动画 ValueAnimator
        方法: ofInt(起始点,结束点)
        监听: addUdateListener()
            在监听里面更新小火箭位置
        设置时间 anim.setDuraation(1000);
        启动动画 anim.staer();

03.小火箭的收尾

a.烟雾怎么做的?一个透明的Activity两个ImageView
b.思考问题:通过小火箭案列,你学会了什么?
    一个复杂的师徒,都可以拆分成为简单的逻辑

*

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
本文介绍如何使用MATLAB实现火箭三级升空的模拟。 1. 建立模型 首先,我们需要建立一个简单的火箭三级升空模型。为了简化问题,我们可以将火箭看作一个质点,并假定其受到的空气阻力可以忽略不计。 我们可以利用牛顿第二定律来描述火箭的运动: F = m * a 其中,F是火箭所受的合力,m是火箭的质量,a是火箭的加速度。 考虑到火箭的质量在不断减小,我们可以将火箭的质量表示为一个关于时间的函数: m(t) = m0 - mt * t 其中,m0是火箭初始的质量,mt是火箭每秒的质量损失。 因此,火箭所受的合力可以表示为: F = (m0 - mt * t) * g - v * mt 其中,g是重力加速度,v是火箭的喷射速度。 火箭的运动可以表示为: m(t) * dv/dt = (m0 - mt * t) * g - v * mt 2. 数值计算 我们可以使用MATLAB的ode45函数来求解上述微分方程。ode45函数采用龙格-库塔方法对微分方程进行数值求解。 我们需要定义一个函数rocket(t, y),其中t是时间,y是状态向量。状态向量包括火箭的速度v和质量m。 function dydt = rocket(t, y) m0 = 1000; % 初始质量 mt = 10; % 质量损失率 g = 9.8; % 重力加速度 v = 200; % 喷射速度 m = m0 - mt * t; dydt(1, 1) = (m0 - mt * t) * g - y(1) * mt / m; dydt(2, 1) = -mt; end 我们可以使用ode45函数来计算火箭的运动轨迹: [t, y] = ode45(@rocket, [0, 100], [0, 1000]); 其中,[0, 100]表示计算时间的范围,[0, 1000]表示火箭的初始速度和质量。 3. 结果可视化 最后,我们可以使用MATLAB的plot函数来将结果可视化: plot(t, y(:, 1)); xlabel('时间'); ylabel('速度'); title('火箭三级升空'); 运行上述代码,即可得到火箭三级升空的模拟结果。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值