Labfans是一个针对大学生、工程师和科研工作者的技术社区。 | 论坛首页 | 联系我们(Contact Us) |
![]() |
![]() |
#1 |
高级会员
注册日期: 2019-11-21
帖子: 3,006
声望力: 66 ![]() |
![]()
我有一个问题,关于如何编写代码以找到两个角度,使弹丸可以在90米处射击。我有一个函数,用问题的给定变量计算水平距离。如果您想象一个在x轴上具有从0d到90d的角度以及与该角度相对应的水平角度的图形,则会得到一个抛物线。我有两个角度,它们之间的距离为90 m。我需要使用平分线法来找到这两个角度。
我针对这个问题的第一种方法是: V0 = 45; Starting Velocity Cd = 0.5; Coefficient of Drag mass = 0.145; Mass of Ball area = 42; Area of Ball tstep = 0.005; Time Step start = 0; Starting Angle finish = 90; Ending Angle a = 1; % My error script to count for the while loop while a > 0.05 left = start; right = finish; mid = (left + right)/2; % Calculation for the mid point during iterations YL = ballistic(left, V0, Cd, mass, area, tstep, plotting); YR = ballistic(right, V0, Cd, mass, area, tstep, plotting); Ymid = ballistic(mid, V0, Cd, mass, area, tstep, plotting); if YL < 90 left = mid; elseif Ymid < 90 left = mid; a = abs(Ymid - 90); end theta = mid; maxdist = Ymid; end 对于上述变量,我将使用一个称为弹道的函数来计算在给定角度下获得的距离。现在,对于第一个角度,我将有一个while循环,对于第二个角度,我将有一个while循环,计算左距离和右距离,并找到平均值。根据错误的结果(a),它将再次执行该操作,直到找到角度为止,但是它对我不起作用和/或不知道如何编写if语句构造。我能帮我写这段代码吗?另外,我对MatLab还是陌生的,所以我将尽可能多地了解如何解决此问题。我想我处于一个我不知道该写什么或如何写我所想的地方。 角度与水平距离图 谢谢 更多&回答... |
![]() |
![]() |