ヘロンの公式を使ってJavaScriptで三角形の面積を求める方法
本記事では、三角形の3辺の長さが与えられたときに、その辺の長さだけを使って三角形の面積を求める関数をJavaScriptで実装する方法を解説します。
ヘロンの公式とは
ヘロンの公式(Heron's formula)は、三角形の高さや角度がわからなくても、3辺の長さが判明していれば面積を計算できる便利な公式です。古代ギリシャの数学者ヘロン(アレクサンドリアのヘロン)にちなんで名付けられました。
手順1:半周長 s を求める
まず、三角形の周の長さの半分である「s」を計算します。
s = (a + b + c) / 2
手順2:面積 A を求める
次に、ヘロンの公式に s を代入して面積を計算します。
A = √( s × (s − a) × (s − b) × (s − c) )
JavaScriptでの実装例
それでは、この公式を関数として実装してみましょう。
const sides = [12, 4, 9];
const areaOfTriangle = sides => {
const [a, b, c] = sides;
const sp = (a + b + c) / 2; // 半周長
const area = Math.sqrt(sp * (sp - a) * (sp - b) * (sp - c));
return area;
};
console.log(areaOfTriangle(sides));実行結果
コンソールには次のように出力されます。
13.635890143294644
補足:無効な辺の組み合わせへの対応
3辺のうち、どの2辺の和も残りの1辺より大きくない場合、三角形は成立しません(三角不等式)。そのような入力ではルートの中身が負の値になり、Math.sqrt() は NaN を返します。実用的なコードでは、あらかじめ入力を検証しておくと安心です。
const safeAreaOfTriangle = ([a, b, c]) => {
const sp = (a + b + c) / 2;
const val = sp * (sp - a) * (sp - b) * (sp - c);
if (val <= 0) {
throw new Error('これらの辺の長さでは三角形は成立しません');
}
return Math.sqrt(val);
};まとめ
ヘロンの公式を使えば、高さを測ることなく3辺の長さだけで三角形の面積を簡単に求められます。地図アプリや図形描画ツールなど、幾何学的な計算が必要な場面でぜひ活用してください。
-
JavaScriptで「#」を使った三角形を出力する方法
JavaScriptで「#」の三角形を出力するには?「#」記号で構成される三角形を画面に出力するには、入れ子(ネスト)になったforループを使用します。仕組みはシンプルで、外側のループが行数を制御し、内側のループがその行に表示する「#」の個数を制御します。各行の出力が終わるごとに改行タグ(<br>)を出力することで、段階的に増えていく三角形の形が完成します。サンプルコード以下のコードを実行すると、三角形が出力されます。<html> <head> <
-
JavaScriptで入力に応じて自動的に高さが変わるテキストエリアを作成する方法
Webフォームなどで長い文章を入力する際、テキストエリアの高さが固定されているとスクロールが必要になり、使い勝手が損なわれることがあります。そこで役立つのが、入力内容に応じて高さを自動的に調整する「自動リサイズテキストエリア」です。 仕組み 実装のポイントは次の2点です。 inputイベント:ユーザーがテキストを入力・貼り付けするたびに処理を実行します。 scrollHeightプロパティ:要素の中身全体の高さを取得し、その値をstyle.heightに設定することで、コンテンツに合わせた高さに変更できます。 一度heightを「auto」に戻してからscrollHeightを設定するのが