C/C++プログラムで放物線の頂点・焦点・準線を求める方法
この記事では、C言語またはC++のプログラムを使って、放物線の頂点・焦点・準線(ダイレクトリックス)を求める方法を解説します。これらのパラメータを計算するには、放物線の一般方程式が必要です。一般式は次のとおりです。
y = ax2 + bx + c
ここで、係数 a、b、c の値はあらかじめ与えられているものとします。
各パラメータを求める公式
頂点(Vertex)
放物線の頂点は、次の座標で表されます。
x = −b / (2a)
y = (4ac − b2) / (4a)
焦点(Focus)
焦点は、頂点より 1/(4a) だけ上に位置します(a > 0 の場合)。
x = −b / (2a)
y = (4ac − b2 + 1) / (4a)
準線(Directrix)
準線は、焦点と頂点を挟んで対称の位置にある水平な直線で、次の式で表されます。
y = (4ac − b2 − 1) / (4a)
C++による実装例
以下のプログラムでは、係数 a、b、c を引数として受け取り、頂点・焦点・準線を画面に出力します。
#include <bits/stdc++.h>
using namespace std;
void getParabolaDetails(float a, float b, float c) {
cout << "頂点: (" << (-b / (2 * a)) << ", "
<< ((4 * a * c - b * b) / (4 * a)) << ")" << endl;
cout << "焦点: (" << (-b / (2 * a)) << ", "
<< ((4 * a * c - b * b + 1) / (4 * a)) << ")" << endl;
cout << "準線: y = " << ((4 * a * c - b * b - 1) / (4 * a)) << endl;
}
int main() {
float a = 10, b = 3, c = 4;
getParabolaDetails(a, b, c);
}実行結果
頂点: (-0.15, 3.775) 焦点: (-0.15, 3.8) 準線: y = 3.75
解説
この例では a = 10、b = 3、c = 4 を代入しています。その結果、頂点は (−0.15, 3.775)、焦点は (−0.15, 3.8)、準線は y = 3.75 となりました。焦点と準線は、頂点を挟んでそれぞれ 1/(4a) = 0.025 ずつ離れた位置にあり、放物線の対称性が確認できます。
なお、a = 0 の場合は二次関数ではなく一次関数(直線)になるため、この方法は適用できません。必ず a ≠ 0 となる値を使用してください。
-
Pythonプログラムで放物線の頂点・焦点・準線を求める方法
本記事では、Pythonを使って放物線の頂点・焦点・準線を求める方法について詳しく解説します。 問題の定義 放物線の標準形は、次のような二次関数で表されます。 y = ax2 + bx + c 係数 a、b、c の値を入力として受け取り、次の3つの情報を求めるのが今回の課題です。 頂点の座標 焦点の座標 準線の方程式 放物線の基礎用語 頂点(Vertex) 頂点とは、放物線が最も鋭く方向転換する点のことです。グラフ上では放物線の谷(または山)の中心に位置し、放物線の対称軸は必ずこの点を通ります。 焦点(Focus) 焦点は放物線を特徴づける特別な点です。「放物線上の任意の点から焦点ま
-
放物線の頂点・焦点・準線を求めるPythonプログラム
本記事では、放物線の標準形から頂点・焦点・準線を求めるPythonプログラムについて解説します。 問題設定 放物線の方程式は一般に次の標準形で表されます。 y = ax² + bx + c 係数 a・b・c の値を受け取り、次の3つの要素を求めるのが今回の課題です。 頂点の座標 焦点の座標 準線の方程式 用語の整理 頂点:放物線が最も急激に方向を変える点のことです。放物線全体の形状を決める重要な基準点となります。 焦点:放物線上の任意の点から焦点までの距離と、準線までの距離が常に等しくなるという性質を持つ特別な点です。 準線:曲線を定義するために用いられる固定された直線のことです。放物線