用户:
I桔汁糖浆I查看:3 回复:19 评论:3 创建时间:2018-03-02T21:43:42
大家好我是上海,在萌新院是个高级后期打杂的
首先很高兴成为了少院士啊啊啊啊啊啊啊啊啊啊贼jier兴奋
然后进入正题:
一个阳光根本见不着的下午,我在放学路上无意想到了一个操作更加科学的抛物线实现方法,然后马不停蹄地赶回家,写了这个程序:
总体来说,是比较简单的
では、始めましょう!
首先,我们先创建这几个变量:
画红框的4个变量是比较重要的
然后就是一些七七八八处理力度的模块,反正这个你们一定能做出来的,而且随便指定一个数也行。我把力度这个数值贮存到名为force的变量中(下面图片中的模块是程序底下的那个力度显示条)
以及处理角度的模块,我把角度的数值贮存到名为angle的变量中(下面图片中的模块是程序中的粉色炮塔)
接下来,我们看看重点——炮弹的模块:
x、y这两个变量是私有变量
在这个模块中,大家会看到两个比较不常用的计算符:sin以及cos
为了解释这两个计算符的作用,我们先简单了解一下三角函数:

在这张图中,三角形ABC是一个直角三角形,A不是直角,AB为斜边,AC为A的邻边,BC为A的对边
那么,sin A就是指当A为某某角度时,A的对边BC与斜边AB的比值,即BC/AB
cos A就是指当A为某某角度时,A的邻边AC与斜边AB的比值,即AC/AB
这个时候,你不要被表象所迷惑,你只需要把他们当成函数,输入A的角度后会返回某两条边的商
现在的我们因为知识有限,就不用管别的公式或是原理,只要用他们的结果就行
那么问题来了:以sin 30度为例,我们可以得出BC/AB=sin 30度=0.5,那么我们可不可以把公式变形一下呢?设斜边AB的值为force的值,这里我们设为10,可得出BC=AB x sin 30度=10 x 0.5=5。此时此刻,我们求出了BC的值!
cos也是一样,设AB为10,可得AC=AB x cos 30度=10 x (根号3/2)=5又根号3。这时候,我们也把AB求出来了。
这时候,我们只要把他们带入到炮弹的x和y的变量中,让炮弹重复执行将他的x增加变量“x”的数值,y增加变量“y”的数值,然后把变量“y”减去合适的数值,就完成了!
这个方法让炮弹的抛物线控制变得更加舒服,只需要调整角度和力度,剩下的交给三角函数来完成