FC2ブログ
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

# 三角形の面積(1辺と2角から) Area of a Triangle
# 引数 2角の間の辺の長さ 角A 角B ラジアン ($Length, $InteriorAngleA, $InteriorAngleB, $IsRadian)
# 戻り値 三角形の面積 (@Triangle)
sub TRIANGLE{
my ($Length, $InteriorAngleA, $InteriorAngleB, $IsRadian) = @_;
my @Triangle = ();
my $ConvertAngle = 0.0174532925199432957692369076849;
my $Pi = atan2(1, 1) * 4;
my $Base = 0;
my $Height = 0;

# 角度からラジアンに変換
if($IsRadian == 0){
$InteriorAngleA = $ConvertAngle * $InteriorAngleA;
$InteriorAngleB = $ConvertAngle * $InteriorAngleB;
}

# 辺の長さの確認
if($Length <= 0){
return 0;
}
# ラジアンの確認
if(($InteriorAngleA <= 0) || ($InteriorAngleB <= 0) || ($Pi <= ($InteriorAngleA + $InteriorAngleB))){
return 0;
}

# 底辺
$Base = $Length;
# 高さ
$Height = $Length * ((&Tangent($InteriorAngleA) * &Tangent($InteriorAngleB)) / (&Tangent($InteriorAngleA) + &Tangent($InteriorAngleB)));

# 三角形の面積(1辺と2角から) Area of a Triangle
# [0] 三角形の面積 [1] 周囲の長さ [2] 高さ [3] 重心位置の高さ [4] 断面二次モーメント [5] 断面係数 [6] 断面二次半径
$Triangle[0] = (($Length * $Length) * sin($InteriorAngleA) * sin($InteriorAngleB)) / (2 * sin($InteriorAngleA + $InteriorAngleB));
$Triangle[1] = $Length + ($Height / sin($InteriorAngleA)) + ($Height / sin($InteriorAngleB));
$Triangle[2] = $Height;
$Triangle[3] = $Height / 3;
$Triangle[4] = ($Base * ($Height * $Height * $Height)) / 36;
$Triangle[5] = ($Base * ($Height * $Height)) / 24;
$Triangle[6] = $Height / sqrt(18);

return @Triangle;
}

# 正接 Tangent
# 引数 値 ($X)
# 戻り値 正接(ラジアン) ($Tangent)
sub Tangent{
my ($X) = @_;
my $Tangent = sin($X) / cos($X);

return $Tangent;
}


参考URL
三角形の面積(1辺と2角から) - 高精度計算サイト
三角形 - Wikipedia
初等数学公式集 - Wikibooks
初等数学公式集/平面図形 - Wikibooks
オンライン コンパイラ/インタプリタ
テクニカル分析
プロフィール

Author:雨宮
Firefoxを使用しているので気づかなかったけど、IE6でソースコードを上手くコピーできない

5/3
携帯用ならIE6でもソースコードをコピーできる
携帯用

検索フォーム


あわせて読みたいブログパーツ
一寸先は闇 RSS

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。