- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有三个形成抛物线的 X/Y 点。我只需要计算通过这三个点的抛物线顶点是多少。最好是一种快速的方法,因为我必须做很多这些计算!
“Ask A Scientist”网站提供this answer :
The general form of a parabola is given by the equation: A * x^2 + B * x + C = y where A, B, and C are arbitrary Real constants. You have three pairs of points that are (x,y) ordered pairs. Substitute the x and y values of each point into the equation for a parabola. You will get three LINEAR equations in three unknowns, the three constants. You can then easily solve this system of three equations for the values of A, B, and C, and you'll have the equation of the parabola that intersects your 3 points. The vertex is where the first derivative is 0, a little algebra gives: ( -B/2A , C - B^2/4A ) for the vertex.
最佳答案
这实际上只是一个简单的线性代数问题,因此您可以象征性地进行计算。当您代入三个点的 x 和 y 值时,您将得到三个未知数的三个线性方程。
A x1^2 + B x1 + C = y1
A x2^2 + B x2 + C = y2
A x3^2 + B x3 + C = y3
x1^2 x1 1
x2^2 x2 1
x3^2 x3 1
y1
y2
y3
denom = (x1 - x2)(x1 - x3)(x2 - x3)
A = (x3 * (y2 - y1) + x2 * (y1 - y3) + x1 * (y3 - y2)) / denom
B = (x3^2 * (y1 - y2) + x2^2 * (y3 - y1) + x1^2 * (y2 - y3)) / denom
C = (x2 * x3 * (x2 - x3) * y1 + x3 * x1 * (x3 - x1) * y2 + x1 * x2 * (x1 - x2) * y3) / denom
A
的值,
B
, 和
C
根据这些公式计算,您只需将它们插入问题中给出的表达式中,
-B / 2A
和
C - B^2/4A
,计算顶点的坐标。1
denom
一个非常大或非常小的数字,直接进行计算可能容易出现重大的数值错误。在这种情况下,最好对其进行一些修改,以避免被分母除以它们无论如何都会抵消:
denom = (x1 - x2)(x1 - x3)(x2 - x3)
a = (x3 * (y2 - y1) + x2 * (y1 - y3) + x1 * (y3 - y2))
b = (x3^2 * (y1 - y2) + x2^2 * (y3 - y1) + x1^2 * (y2 - y3))
c = (x2 * x3 * (x2 - x3) * y1 + x3 * x1 * (x3 - x1) * y2 + x1 * x2 * (x1 - x2) * y3)
-b / 2a
和
(c - b^2 / 4a) / denom
.还有许多其他情况可能会从这样的“技巧”中受益,例如 if
A
非常大或非常小,或者如果
C
几乎等于
B^2 / 4A
因此它们的差异非常小,但我认为这些情况变化很大,因此最好将完整的讨论留给逐个案例的后续问题。
关于curve-fitting - 给定三个点如何计算抛物线的顶点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/717762/
我需要让 Excel 将大约 5 个点绘制成一条曲线。如果这些点没有完美排列,我正在寻找的是所有点的平均值。我对 Excel 上的绘图不是很熟悉,所以很可能我忽略了一些选项来获得我想要实现的目标。 这
我想做类似this的事情,但要相反-以便摄像机在外面并指向内部。让我们从抽象开始,并进行具体说明: 1)是否有任何工具可以帮我做到这一点?我可以使用现有软件多近的距离? 2)说最近的工具是像OpenC
我使用 JFreeChart 写了一个简单的抛物线图。 package parabolademo; import java.awt.geom.Point2D; import java.awt.geom
我得到了三个点,需要绘制一条平滑的 3D 抛物线。问题是曲线起伏不定,而且有一些奇怪的凹痕 这是我的代码... func drawJump(jump: Jump){ let halfDista
我目前正在开发一款2D Android 游戏, 在这个游戏中,一个ViewObject(Bitmap)在Parabola Path上在屏幕上移动,就像在这个图像中一样,但是这个路径是静态的,静态路径正
我是一名优秀的程序员,十分优秀!