ARTICLE · INTELLIGENCE

战地情报 · 详情页

来自尧图项目组的一线实战观察与深度解析

Java 求抛物线的顶点、焦点和准线(Finding the vertex, focus and directrix of a parabola)

Java 求抛物线的顶点、焦点和准线(Finding the vertex, focus and directrix of a parabola)

如果您喜欢此文章,请收藏、点赞、评论,谢谢,祝您快乐每一天。

问题:已知抛物线方程的系数,求其顶点、焦点和准线。平面上由若干点构成的曲线,使得曲线上任意一点到焦点的距离相等,则该点构成的曲线称为抛物线。抛物线的顶点是曲线拐点最急的点的坐标,而准线是构成该曲线的直线。

抛物线方程的标准形式是 y=ax²+bx+c 已知 a、b 和 c 的值,我们的任务是求出顶点坐标、焦点坐标和准线方程。

例如——

输入:5 3 2

输出:顶点:(-0.3, 1.55)
焦点:(-0.3, 1.6)
准线:y=-198

请参考以下公式进行解释。

这个问题是公式应用的一个简单示例。下面列出了解决问题所需的公式。

对于形如 y=ax²+bx+c 顶点:(−b/2a,4ac−b²/4a) 重点: (−b/2a,4ac−b²+1/4a) 准线:y=c−(b²+1)4a

示例代码:

// Java program to find the vertex,
// focus and directrix of a parabola

class GFG {

// Function to calculate Vertex,
// Focus and Directrix
static void parabola(float a,
float b, float c)
{

System.out.println("Vertex: (" +
(-b / (2 * a)) + ", " +
(((4 * a * c) - (b * b)) /
(4 * a)) + ")");

System.out.println("Focus: (" +
(-b / (2 * a)) + ", " +
(((4 * a * c) - (b * b) + 1) /
(4 * a)) + ")");

System.out.println("Directrix:" + " y=" +
(int)(c - ((b * b) + 1) *
4 * a));
}

// Driver Function
public static void main(String[] args)
{
float a = 5, b = 3, c = 2;

// Function calling
parabola(a, b, c);
}
}

// This code is contributed by
// Smitha Dinesh Semwal

输出-

顶点坐标:(-0.3, 1.55)

焦点坐标:(-0.3, 1.6)

准线坐标:y=-198

时间复杂度: O(1)

辅助空间: O(1)

如果您喜欢此文章,请收藏、点赞、评论,谢谢,祝您快乐每一天。

RELATED READING

延伸阅读

更多一线实战笔记与深度复盘,助您持续精进