Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/369.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在给定源坐标和目标坐标的情况下推导参数抛物方程_Java_Math - Fatal编程技术网

Java 在给定源坐标和目标坐标的情况下推导参数抛物方程

Java 在给定源坐标和目标坐标的情况下推导参数抛物方程,java,math,Java,Math,对于一个程序,星星以随机的、预先计算的位置出现在屏幕的底部或顶部。星星移动到其预定的目的地,即字母的顶部或底部(基于星星是否起源于字母的上方或下方)。目前,恒星的运动基本上是线性的,有一些自制方程式的曲线。我想要一个固体抛物线方程,在这个方程中,恒星到达它们的目标位置的角度与目标字母的顶部/底部大致垂直(+-20度左右)。我打电话给calc 3,所以我不知道如何实现这个问题的抛物线。我也愿意用一种完全不同的方式来制作这些对象的动画。谢谢你的帮助。谢谢 无关信息:恒星的源位置永远不会直接位于它们

对于一个程序,星星以随机的、预先计算的位置出现在屏幕的底部或顶部。星星移动到其预定的目的地,即字母的顶部或底部(基于星星是否起源于字母的上方或下方)。目前,恒星的运动基本上是线性的,有一些自制方程式的曲线。我想要一个固体抛物线方程,在这个方程中,恒星到达它们的目标位置的角度与目标字母的顶部/底部大致垂直(+-20度左右)。我打电话给calc 3,所以我不知道如何实现这个问题的抛物线。我也愿意用一种完全不同的方式来制作这些对象的动画。谢谢你的帮助。谢谢



无关信息:恒星的源位置永远不会直接位于它们要碰撞的字母的上方或下方,并且对于底部原始恒星,其距离屏幕宽度永远不会超过一半,对于顶部原始恒星,其距离屏幕宽度永远不会超过1/3

所以,我们想要一条抛物线,顶点已知,还有其他任意点

首先,考虑顶点。在抛物线的顶点,y位置的一阶导数为零
d/dx(ax^2+bx+c)=2ax+b
,因此当
2ax+b=0
时求解
2ax=-b=>x=-b/2a
。所以
X_a=-b/2a

现在,我们可以用它来求解
a
b
。所以,
a=-b/2X\u a

我们还知道顶点的y坐标:
y_a=(-b/2X_a)X_a^2+bX_a+c
<代码>Y_a=-bX_a/2+bX_a+c<代码>Y_a=bX_a/2+c;求解
c
c=Y\u a-bX\u a/2

现在将其插入另一个已知点的方程:
y=(-b/2X_2)x^2+bx+y_a-bx_a/2
<代码>y=-bX_a/2+bX+y_a-bX_a/2<代码>y=-bX_a+bX+y_a;求解b:
bx-bx_a=y-y_a
<代码>b(x-x_a)=y-y_a<代码>b=(y-y\u a)/(x-x\u a)


现在你有了二次函数的三个参数的公式(a和c依赖于b),所以你可以很容易地得到一个参数形式。

你的问题不是很清楚。你说的“碰撞”是什么意思?当你说“垂直于目的地字母”时,你指的是该字母的哪个方面?当你说“凹向上”时,那是什么?最简单的回答方法可能是拍摄一张照片,然后在上面手工绘制一个轨迹示例。此外,在手工绘制轨迹时,请标记所有控制值(角度、点、切线等),因为您的图形没有足够的控制点;两点给出了两个方程,三个未知数。我试着用初始轨迹作为输入来求解它,但很快就得到了一个四阶多项式混乱,所以也许可以选择其他一些控制点:)假设有一条抛物线w/源/顶点(h,k),目标点(x,y)和焦点[a]。那么y=a*(x-h)^2+k,其中a=(y-k)/(x-h)^2。求解a,然后使用公式y=a*(x-h)^2+k沿抛物线找到任意点。若要设置对象沿抛物线移动的动画,请初始设置x=h,并随时间增加x。