Cプログラミング
 Computer >> コンピューター >  >> プログラミング >> Cプログラミング

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 となる値を使用してください。

  1. Pythonプログラムで放物線の頂点・焦点・準線を求める方法

    本記事では、Pythonを使って放物線の頂点・焦点・準線を求める方法について詳しく解説します。 問題の定義 放物線の標準形は、次のような二次関数で表されます。 y = ax2 + bx + c 係数 a、b、c の値を入力として受け取り、次の3つの情報を求めるのが今回の課題です。 頂点の座標 焦点の座標 準線の方程式 放物線の基礎用語 頂点(Vertex) 頂点とは、放物線が最も鋭く方向転換する点のことです。グラフ上では放物線の谷(または山)の中心に位置し、放物線の対称軸は必ずこの点を通ります。 焦点(Focus) 焦点は放物線を特徴づける特別な点です。「放物線上の任意の点から焦点ま

  2. 放物線の頂点・焦点・準線を求めるPythonプログラム

    本記事では、放物線の標準形から頂点・焦点・準線を求めるPythonプログラムについて解説します。 問題設定 放物線の方程式は一般に次の標準形で表されます。 y = ax² + bx + c 係数 a・b・c の値を受け取り、次の3つの要素を求めるのが今回の課題です。 頂点の座標 焦点の座標 準線の方程式 用語の整理 頂点:放物線が最も急激に方向を変える点のことです。放物線全体の形状を決める重要な基準点となります。 焦点:放物線上の任意の点から焦点までの距離と、準線までの距離が常に等しくなるという性質を持つ特別な点です。 準線:曲線を定義するために用いられる固定された直線のことです。放物線