行列式を使用して三角形の面積を計算するC++プログラム
このセクションでは、行列式を使用して2D座標空間で三角形の領域を見つける方法を説明します。この場合、スペースは2Dであると考えています。したがって、各ポイントをマトリックスに配置します。最初の列にx値を入れ、2番目の列にyを入れ、3番目の列として1を取ります。次に、それらの行列式を見つけます。三角形の面積は、行列式の値の半分になります。行列式が負の場合は、単純にその絶対値を取ります。
$$ Area \:=\:absolute \:of \ begin {pmatrix} \ frac {1} {2} \ begin {vmatrix} x_1 \:\:y_1 \:\:1 \\ x_2 \:\:y_2 \ :\:1 \\ x_3 \:\:y_3 \:\:1 \ end {vmatrix} \ end {pmatrix} $$
ここでは、これが3x3行列であると想定しているため、行列式関数は3x3ではない行列の行列式を見つけることができません。
サンプルコード
#include<iostream> #include<cmath> using namespace std; double det(double M[3][3]) { double t1 = (M[1][1] * M[2][2])-(M[1][2] * M[2][1]); double t2 = (M[1][0] * M[2][2])-(M[1][2] * M[2][0]); double t3 = (M[1][0] * M[2][1])-(M[1][1] * M[2][0]); return (M[0][0]*t1) + (-M[0][1]*t2) + (M[0][2]*t3); } main() { double M[3][3]; cout << "Enter Point p1 (x, y):"; cin >> M[0][0] >> M[0][1]; M[0][2] = 1; cout << "Enter Point p2 (x, y):"; cin >> M[1][0] >> M[1][1]; M[1][2] = 1; cout << "Enter Point p3 (x, y):"; cin >> M[2][0] >> M[2][1]; M[2][2] = 1; int determinant = det(M); cout << "The area is: " << fabs(determinant) * 0.5; }
出力
Enter Point p1 (x, y):3 4 Enter Point p2 (x, y):6 4 Enter Point p3 (x, y):3 9 The area is: 7.5
-
C++で六角形に内接する最大の三角形の面積
ここでは、正六角形に内接する最大の三角形の領域が表示されます。六角形の各辺は「a」であり、三角形の各辺は「b」です。 この図から、六角形の1つの辺を使用して1つの三角形を作成すると、これらの2つの三角形が各辺を2つの部分に分割していることがわかります。 2つの直角三角形も見ることができます。ピタゴラスの公式から、次のように言うことができます- したがって、面積は- 例 #include <iostream> #include <cmath> using namespace std; float area(float a) { &nbs
-
C++を使用して楕円の領域を見つけるプログラム
ここでは、C++を使用して楕円の面積を取得する方法を説明します。楕円にはさまざまな部分があります。これらは以下のようなものです。 キーポイント 説明 センター 楕円の中心。また、2つの焦点を結ぶ線分の中心でもあります。 主軸 楕円の最長直径 nmemb これは要素の数であり、各要素のサイズはサイズです。 バイト。 短軸 楕円の最小直径 コード tを指す線分 フォーカス 図で示されている2つのポイント ロータス直腸 蓮の直腸は、焦点を通り、楕円の主軸に垂直な線です。 楕円の面積はΠ𝜋 ∗𝑎a∗b𝑏 サンプルコード #include <iostre