C++で隣接する2辺のベクトルから三角形の面積を求める方法
三角形の面積を求める考え方
三角形の隣接する2辺が、xî + yĵ + zk̂ の形式で表されるベクトル A と B として与えられているとします。このとき、三角形の面積は「2つのベクトルの外積の大きさの半分」で求められます。つまり、面積 = (1/2)|A × B| です。
外積の各成分に展開すると、面積は次の式で表されます。
$$\frac{1}{2}|\vec{A}\times\vec{B}|=\frac{1}{2}\sqrt{(y_{1}z_{2}-y_{2}z_{1})^{2}+(x_{1}z_{2}-x_{2}z_{1})^{2}+(x_{1}y_{2}-x_{2}y_{1})^{2}}$$
C++による実装例
以下のプログラムでは、2つの3次元ベクトルを配列として受け取り、外積の各成分を計算したうえで、その大きさの半分を面積として返しています。
#include<iostream>
#include<cmath>
using namespace std;
float area(float A[], float B[]) {
float area = sqrt(pow((A[1] * B[2] - B[1] * A[2]), 2)
+ pow((A[0] * B[2] - B[0] * A[2]), 2)
+ pow((A[0] * B[1] - B[0] * A[1]), 2));
return area * 0.5;
}
int main() {
float A[] = {3, 1, -2};
float B[] = {1, -3, 4};
float a = area(A, B);
cout << "Area = " << a;
}実行結果
Area = 8.66025
計算内容の解説
この例では、ベクトル A = (3, 1, −2)、B = (1, −3, 4) を使用しています。外積 A × B の各成分は次のように計算されます。
- x成分: 1×4 − (−2)×(−3) = 4 − 6 = −2
- y成分: (−2)×1 − 3×4 = −2 − 12 = −14
- z成分: 3×(−3) − 1×1 = −9 − 1 = −10
外積の大きさは √((−2)² + (−14)² + (−10)²) = √300 ≒ 17.3205 となり、その半分を取ると約 8.66025 が三角形の面積として出力されます。
まとめ
隣接する2辺のベクトルが分かれば、外積の大きさの半分を計算するだけで三角形の面積を簡単に求められます。3次元ベクトルの外積は、ゲーム開発やコンピュータグラフィックス、物理シミュレーションなど、面積や法線ベクトルを扱う場面で頻繁に活用される重要な演算です。
-
C++で3辺の長さが与えられた三角形の外接円の面積を求める方法
C++で三角形の外接円の面積を計算する 本記事では、3辺の長さが分かっている三角形について、その外接円(3つの頂点すべてを通る円)の面積をC++で求める方法を解説します。 下図のように、辺ABの長さをa、辺BCの長さをb、辺CAの長さをc、外接円の半径をrとします。 外接円の半径を求める公式 外接円の半径rは、3辺の長さと三角形の面積Sを用いて、次の式で表されます。 具体的な手順は以下の通りです。 まず、半周長 s = (a + b + c) / 2 を求めます。 ヘロンの公式より、三角形の面積は S = √(s(s − a)(s − b)(s − c)) で計算できます。 半径 r =
-
C++で楕円の面積を求めるプログラムの作成方法
この記事では、C++を使って楕円(だえん)の面積を求める方法を解説します。楕円にはいくつかの重要な構成要素があり、それぞれの意味を理解しておくと計算の仕組みがより明確になります。楕円の主な構成要素要素説明中心楕円の中心点。2つの焦点を結ぶ線分の中点でもあります。長軸楕円における最も長い直径です。短軸楕円における最も短い直径です。弦楕円上の2点を結ぶ線分のことです。焦点楕円を定義する2つの特別な点。図中に示された2点が該当します。通径焦点を通り、長軸に対して垂直な直線(線分)のことです。楕円の面積の公式楕円の面積は、長半径 a と短半径 b を使って次の式で表されます。面積 = π × a ×