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

标签 java math

对于节目,星星出现在屏幕底部或顶部的随机、预先计算的位置。星星移动到它们预定的目的地,即字母的顶部或底部(取决于星星是起源于字母上方还是下方)。目前恒星的运动主要是线性的,一些自制方程式有一点曲线。我想要一个固体抛物线方程,其中星星以大致垂直(± 20 度左右)的角度到达目的地字母的顶部/底部。我调用 calc 3,所以我不知道如何为这个问题实现抛物线。我也乐于采用一种完全不同的方式来为这些对象设置动画。帮助表示赞赏。谢谢!

enter image description here enter image description here enter image description here
无关信息:星星的源位置永远不会直接在它们要碰撞的字母的上方或下方,并且对于底部起源的星星,它的距离绝不会超过屏幕宽度的一半或屏幕宽度的 1/3远离顶级起源的明星。

最佳答案

因此,我们需要一条已知顶点的抛物线,以及其他一些任意点。

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

现在,我们可以用它来求解 ab。所以,a = -b/2X_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_a - bX_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_a)/(x - X_a)

现在你有了二次函数的三个参数的公式(ac 依赖于 b),所以你可以轻松获得参数形式。

关于java - 在给定源坐标和目标坐标的情况下推导参数抛物线方程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6486227/

相关文章:

java - 返回第三方响应对象 - com.fasterxml.jackson.databind.JsonMappingException

javascript - 每 10 个芒果去除 1 个芒果

math - 生成由Zipf分配的随机数

java - 从 ArrayList 调用方法时出现问题

java - 使用自定义适配器和扩展 PagerAdapter 使用 SmartTabLayout 设置选项卡标题

python - 如何自动将 LaTeX 数学模式方程转换为 Python/numpy 代码?

javascript - 如何在 2d 游戏中对对象进行排序?

android 将圆分成N等份并知道每个分割点的坐标

java - 使用 Eclipse,如何在 Content Assist 中隐藏父类(super class)方法?

java - 在 Java 中按值而不是引用添加到列表