C++で放物線の頂点・焦点・準線を求める方法
このチュートリアルでは、C++を使って放物線の頂点、焦点、準線を求める方法を学びます。放物線の方程式の係数として、x、y、z の3つの定数が与えられたものとします。
放物線の基本要素
放物線とは、2次関数をグラフに描いたときに現れる左右対称のU字形の曲線です。今回扱う主な要素は次の3つです。
- 頂点:放物線の最も高い(または低い)点で、グラフの対称軸上に位置します。
- 焦点:放物線の形状を決める特別な点。放物線上のどの点から見ても、焦点までの距離と準線までの距離は等しくなります。
- 準線:焦点とセットで放物線を定義する基準となる直線です。
頂点・焦点・準線を求める公式
放物線を y = xX2 + yX + z の形で表した場合、各要素は次の公式で求められます。
- 頂点:(−y/2x, (4xz − y2)/4x)
- 焦点:(−y/2x, (4xz − y2 + 1)/4x)
- 準線:Y = z − (y2 + 1)/4x
いずれの公式も分数を含むため、プログラムに実装する際は括弧の付け方が非常に重要です。括弧を忘れると、演算子の優先順位によって計算の順序が変わり、まったく異なる結果になってしまいます。
サンプルコード
実際にC++で実装したコードを見てみましょう。
#include <iostream>
using namespace std;
void findParabolaProperties(float x, float y, float z) {
cout << "頂点: (" << -y / (2 * x) << ", "
<< ((4 * x * z) - (y * y)) / (4 * x) << ")" << endl;
cout << "焦点: (" << -y / (2 * x) << ", "
<< ((4 * x * z) - (y * y) + 1) / (4 * x) << ")" << endl;
cout << "準線: Y = " << z - ((y * y) + 1) / (4 * x) << endl;
}
int main() {
float x = 6, y = 4, z = 7;
findParabolaProperties(x, y, z);
return 0;
}
出力結果
x = 6、y = 4、z = 7 を引数として上記のコードを実行すると、次の結果が出力されます。
頂点: (-0.333333, 6.33333) 焦点: (-0.333333, 6.375) 準線: Y = 6.29167
計算内容の確認
頂点のY座標を手計算で確かめてみましょう。
(4 × 6 × 7 − 42) ÷ (4 × 6) = (168 − 16) ÷ 24 = 6.333…
もし「((4xz − y2) ÷ 4) × x」のように計算してしまうと、答えが 228 となり、正しい値から大きくズレてしまいます。これはC++において除算と乗算が同じ優先順位で左から右へ評価されるためです。分母の (4 * x) の部分を明示的に括弧で囲むことで、この問題を防げます。
まとめ
放物線の頂点・焦点・準線は、シンプルな公式を使えば簡単に求められ、C++でも短いコードで実装できます。正確な結果を得るためのポイントは、分数の分子と分母を正しく括弧で囲むことです。このチュートリアルについて質問がある場合は、コメント欄でお知らせください。
-
Pythonプログラムで放物線の頂点・焦点・準線を求める方法
本記事では、Pythonを使って放物線の頂点・焦点・準線を求める方法について詳しく解説します。 問題の定義 放物線の標準形は、次のような二次関数で表されます。 y = ax2 + bx + c 係数 a、b、c の値を入力として受け取り、次の3つの情報を求めるのが今回の課題です。 頂点の座標 焦点の座標 準線の方程式 放物線の基礎用語 頂点(Vertex) 頂点とは、放物線が最も鋭く方向転換する点のことです。グラフ上では放物線の谷(または山)の中心に位置し、放物線の対称軸は必ずこの点を通ります。 焦点(Focus) 焦点は放物線を特徴づける特別な点です。「放物線上の任意の点から焦点ま
-
放物線の頂点・焦点・準線を求めるPythonプログラム
本記事では、放物線の標準形から頂点・焦点・準線を求めるPythonプログラムについて解説します。 問題設定 放物線の方程式は一般に次の標準形で表されます。 y = ax² + bx + c 係数 a・b・c の値を受け取り、次の3つの要素を求めるのが今回の課題です。 頂点の座標 焦点の座標 準線の方程式 用語の整理 頂点:放物線が最も急激に方向を変える点のことです。放物線全体の形状を決める重要な基準点となります。 焦点:放物線上の任意の点から焦点までの距離と、準線までの距離が常に等しくなるという性質を持つ特別な点です。 準線:曲線を定義するために用いられる固定された直線のことです。放物線