Ios 当起点和终点已知但高度可变时,如何在cocos2d/box2d中创建预览轨迹?

Ios 当起点和终点已知但高度可变时,如何在cocos2d/box2d中创建预览轨迹?,ios,cocos2d-iphone,box2d-iphone,Ios,Cocos2d Iphone,Box2d Iphone,我是一名经验丰富的iPhone开发人员,但对Cocos2D和Box2D还不熟悉,我完全承认我需要物理复习。我希望建立的是一个预览轨迹(一个基于输入变量指示投射物飞行路径的圆弧,类似于许多愤怒的小鸟风格的游戏) 不过,我想做一些不同的事情,设置起点(投射物在屏幕上的开始位置)和终点(目标位置)。不过,根据用户的输入,抛物线的高度会发生变化。所以在这个意义上,我不是用抛物线路径来预览目标的着陆位置,而是投射物撞击目标的角度(同样,抛物线总是在目标处终止) 我没有在网上看到任何完全符合我需要的东西。大

我是一名经验丰富的iPhone开发人员,但对Cocos2D和Box2D还不熟悉,我完全承认我需要物理复习。我希望建立的是一个预览轨迹(一个基于输入变量指示投射物飞行路径的圆弧,类似于许多愤怒的小鸟风格的游戏)

不过,我想做一些不同的事情,设置起点(投射物在屏幕上的开始位置)和终点(目标位置)。不过,根据用户的输入,抛物线的高度会发生变化。所以在这个意义上,我不是用抛物线路径来预览目标的着陆位置,而是投射物撞击目标的角度(同样,抛物线总是在目标处终止)

我没有在网上看到任何完全符合我需要的东西。大多数可用的代码更多的是向用户显示投射物将降落的位置。我想确定一个物体的角度(矢量)和脉冲,以匹配不同的抛物线振幅,但始终在同一位置结束。一张图片抵得上千言万语,所以我链接到了一张自制的图片,试图帮助解释(所以不让我嵌入图片)


任何帮助都将不胜感激。

尝试检查贝塞尔曲线。您可以使用它们定义所需的路径。您可以使用cocos 2d或不使用cocos 2d

让我们用数学模型来表示<抛物线方向的code>角度是输入变量,抛物线在
0
目标点
中穿过x轴,将计算高度

抛物线看起来是这样的:
y=x*(a-x)*b
,其中
a
定义了到目标点的距离,
b
是(与
a
一起)影响起始角度和高度的某个值。 我们可以通过原点中心的atan(x/y)计算角度。我们知道切线代表抛物线的导数。导数是
y'=a*b-2*x*b
,在原点中心
y=0
x=0
,我们得到
[原点中心导数]=a*b
a
预定义为到目标点的距离,因此
angle
b
变化的影响:
angle=atan(a*b)

此时,我们有抛物线方程
y=x*(a-x)*b
,预定义的
a=[到目标点的距离]*4
和角度方程
angle=atan(a*b)
,其中
b
是输入值。例如:

  • 到点的距离为10->
    a=40
  • 用户输入45*->tan(45*)=1,
    b=tan(45*)/a
    ->
    b=1/40
  • 将这些值放入方程式
    y=x*(a-x)*b
    y=x*(40-x)/40
    ,然后检查
至于最大高度,根据方程
a*x^2+b*x+c=0
计算,条件是
crmk_=-b/2а
。我想,自己算应该不难:)