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

# 正多面体の体積 Volume of a Regular Polyhedra
# 引数 1辺の長さ 面の数 ($Length, $Faces)
# 戻り値 正多面体の体積 (@RegularPolyhedra)
sub REGULARPOLYHEDRA{
my ($Length, $Faces) = @_;
my @RegularPolyhedra = ();

# 1辺の長さ 面の数の確認
if(($Length <= 0) || (($Faces != 4) && ($Faces != 6) && ($Faces != 8) && ($Faces != 12) && ($Faces != 20))){
return 0;
}

if($Faces == 4){
# 正四面体の体積 Volume of a Regular Tetrahedron
# [0] 正四面体の体積 [1] 正四面体の表面積
$RegularPolyhedra[0] = (sqrt(2) * ($Length * $Length * $Length)) / 12;
$RegularPolyhedra[1] = sqrt(3) * ($Length * $Length);
}
elsif($Faces == 6){
# 正六面体の体積 Volume of a Regular Hexahedron
# [0] 正六面体の体積 [1] 正六面体の表面積
$RegularPolyhedra[0] = $Length * $Length * $Length;
$RegularPolyhedra[1] = 6 * ($Length * $Length);
}
elsif($Faces == 8){
# 正八面体の体積 Volume of a Regular Octahedron
# [0] 正八面体の体積 [1] 正八面体の表面積
$RegularPolyhedra[0] = (sqrt(2) * ($Length * $Length * $Length)) / 3;
$RegularPolyhedra[1] = 2 * sqrt(3) * ($Length * $Length);
}
elsif($Faces == 12){
# 正十二面体の体積 Volume of a Regular Dodecahedron
# [0] 正十二面体の体積 [1] 正十二面体の表面積
$RegularPolyhedra[0] = ((15 + (7 * sqrt(5))) / 4) * ($Length * $Length * $Length);
$RegularPolyhedra[1] = 3 * sqrt(25 + (10 * sqrt(5))) * ($Length * $Length);
}else {
# 正二十面体の体積 Volume of a Regular Icosahedron
# [0] 正二十面体の体積 [1] 正二十面体の表面積
$RegularPolyhedra[0] = ((5 * (3 + sqrt(5))) / 12) * ($Length * $Length * $Length);
$RegularPolyhedra[1] = 5 * sqrt(3) * ($Length * $Length);
}

return @RegularPolyhedra ;
}


参考URL
正多面体の体積 - 高精度計算サイト
正多面体 - Wikipedia
正四面体 - Wikipedia
正六面体 - Wikipedia
正八面体 - Wikipedia
正十二面体 - Wikipedia
正二十面体 - Wikipedia
オンライン コンパイラ/インタプリタ
テクニカル分析
プロフィール

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

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

検索フォーム


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

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