C/C++で放物線の頂点・焦点・準線を求めるプログラム
平面上の点の集合のうち、曲線上の任意の点が中心にある1つの定点(これを焦点と呼びます)から常に等しい距離を保つように形成される曲線を放物線といいます。
放物線の一般方程式は次のとおりです。
y = ax2 + bx + c
頂点とは、放物線が最も鋭く方向転換する点の座標のことです。また、係数 a は曲線の開き具合を決める重要な値となります。
焦点は、放物線上のすべての点から等距離にある点です。さらに、焦点と対になる概念として準線(directrix)と呼ばれる直線があり、放物線上の各点は焦点までの距離と準線までの距離が等しくなるという性質を持ちます。
この記事では、放物線の頂点・焦点・準線を求める方法を解説します。これらの値は数学的な公式から導くことができ、その公式をそのままプログラムに実装します。
入力: a = 10, b = 5, c = 4 出力: 頂点: (-0.25, 3.375) 焦点: (-0.25, 3.4) y-準線: -1036
解説
放物線の係数 a, b, c が与えられたとき、頂点・焦点・準線を求めるための数式は以下のとおりです。
頂点 = {(-b/2a) , (4ac−b2/4a)}
焦点 = {(-b/2a), (4ac−b2+1)/4a}
準線 = c − (b2+1)×4a
頂点の x 座標は −b/2a で表され、これは放物線の対称軸でもあります。焦点の x 座標は頂点と同じ値になり、y 座標は頂点より 1/4a だけ大きくなります。なお、これらの公式は軸が y 軸に平行な放物線(上または下に開く放物線)に適用されます。
サンプルコード
#include <iostream>
using namespace std;
int main() {
float a = 10, b = 5, c = 4;
cout << "頂点: (" << (-b / (2 * a)) << ", " << (((4 * a * c) - (b * b)) / (4 * a)) << ")\n";
cout << "焦点: (" << (-b / (2 * a)) << ", " << (((4 * a * c) - (b * b) + 1) / (4 * a)) << ")\n";
cout << "y-準線:" << c - ((b * b) + 1) * 4 * a;
}このプログラムでは、係数 a, b, c を変数として定義し、上記の数式をそのまま計算式に置き換えて頂点・焦点・準線を出力しています。a, b, c の値を変更すれば、任意の放物線に対して同じ手順で計算できます。
-
Pythonプログラムで放物線の頂点・焦点・準線を求める方法
本記事では、Pythonを使って放物線の頂点・焦点・準線を求める方法について詳しく解説します。 問題の定義 放物線の標準形は、次のような二次関数で表されます。 y = ax2 + bx + c 係数 a、b、c の値を入力として受け取り、次の3つの情報を求めるのが今回の課題です。 頂点の座標 焦点の座標 準線の方程式 放物線の基礎用語 頂点(Vertex) 頂点とは、放物線が最も鋭く方向転換する点のことです。グラフ上では放物線の谷(または山)の中心に位置し、放物線の対称軸は必ずこの点を通ります。 焦点(Focus) 焦点は放物線を特徴づける特別な点です。「放物線上の任意の点から焦点ま
-
放物線の頂点・焦点・準線を求めるPythonプログラム
本記事では、放物線の標準形から頂点・焦点・準線を求めるPythonプログラムについて解説します。 問題設定 放物線の方程式は一般に次の標準形で表されます。 y = ax² + bx + c 係数 a・b・c の値を受け取り、次の3つの要素を求めるのが今回の課題です。 頂点の座標 焦点の座標 準線の方程式 用語の整理 頂点:放物線が最も急激に方向を変える点のことです。放物線全体の形状を決める重要な基準点となります。 焦点:放物線上の任意の点から焦点までの距離と、準線までの距離が常に等しくなるという性質を持つ特別な点です。 準線:曲線を定義するために用いられる固定された直線のことです。放物線