双対多面体の諸量 体積、面積
今回は 双対多面体の体積や 面積計算の BASIC プログラムを載せておきます。
双対多面体の場合 何を基準として 体積や面積を表現すべきか悩むところです。
以下にその出力の値を表示します。
体積1 や 面積1 は すでにお伝えしている値なので省略し 名称を追加しておきます。
体積2 や 面積2 は 双対多面体の稜の寸法の一番小さい値を 1 としたときの値です。
有効桁数は 13 ぐらいです。
双対体積2 双対面積2 .11785113019776 1.73205080756889 01 双対[3,3,3] Tetrahedron 1.00000000000001 6.00000000000001 02 双対[3,3,3,3] Hexahedron .471404520791039 3.46410161513776 03 双対[4,4,4] Octahedron 7.66311896062464 20.6457288070676 04 双対[3,3,3,3,3] Dodecahedron 3.07920143567805 11.3137084989848 05 双対[3,4,3,4] Rhombic Dodecahedron .982092751648015 5.52770798392574 06 双対[3,6,6] Triakis Tetrahedron 35.6302020120718 54.7965494386598 07 双対[3,3,3,3,4] Pentagonal Icositetrahedron 14.9133887137866 30.6948957240312 08 双対[3,4,4,4] Trapezoidal Icositetrahedron 2.18169499062494 8.66025403784447 09 双対[5,5,5] Icosahedron 3.5555555555556 11.9256958799988 10 双対[4,6,6] Tetrakis Hexahedron 12.3107341487011 26.8328157299974 11 双対[3,5,3,5] Rhombic Triacontahedron 2.91421356237319 10.6729418739837 12 双対[3,8,8] Triakis Octahedron 189.78985206689 162.698964198467 13 双対[3,3,3,3,5] Pentagonal Hexecontahedron 81.0041436353778 92.2319129064044 14 双対[3,4,5,4] Trapezoidal Hexecontahedron 16.288919082924 32.0667340105321 15 双対[4,6,8] Hexakis Octahedron 13.4585693663192 27.9352496007011 16 双対[5,6,6] Pentakis Dodecahedron 12.0172209268751 26.2285959767441 17 双対[3,10.10] Triakis Icosahedron 84.181975440052 94.2346326621943 18 双対[4,6,10] Hexakis Icosahedron
以下がプログラムです。 今回も2013年1月11日に掲載した 計算プログラムで算出した諸量をもとに 表面積計算を追加して求めています。
OPTION ANGLE DEGREES DIM d01(18,8) ! 双対多面体の諸量 DIM d02(10,03) ! 正多角形の諸量 DIM d03$(18,2) ! 最小寸法の稜の形態と名称 FOR d04=1 TO 18 FOR d05 =1 TO 8 READ d01(d04,d05) ! 双対多面体の諸量の読み込み NEXT d05 READ d03$(d04,1) ! 最小寸法の稜の形態の読み込み READ d03$(d04,2) ! 名称の読み込み NEXT d04 FOR d06 = 1 TO 6 ! 正多角形の諸量計算 READ d07 LET d02(d07,1) = 0.5/SIN(180/d07) !正多角形の かど心寸 LET d02(d07,2) = 0.5/TAN(180/d07) !正多角形の 辺心寸 LET d02(d07,3) = SIN((180-360/d07)/2) !正多形の内角を二等辺三角形の頂角 ! !としたときの 底辺の1/2の長さ NEXT d06 PRINT " 双対体積1"," 双対面積1", " 双対体積2"," 双対面積2" FOR d08=1 TO 18 LET d09=d01(d08,1) LET d10=d01(d08,2) LET d11=d01(d08,3) LET d12=d01(d08,4) LET d13=d01(d08,5) LET d14=d01(d08,6) LET d15=d01(d08,7) LET d16 = d01(d08,8) ! 基本数 頂芯寸が 1 のときの 稜芯寸 LET d17 = d16/(SQR(1-d16^2)*2) ! 稜芯寸 LET d18 = SQR((1/SQR(1-d16^2)/2)^2 - d02(d09,1)^2) ! L面芯寸 LET d19 = SQR((1/SQR(1-d16^2)/2)^2 - d02(d10,1)^2) ! M面芯寸 LET d20 = SQR((1/SQR(1-d16^2)/2)^2 - d02(d11,1)^2) ! S面芯寸 LET d21 = d02(d09,2) * d17 / d18 ! 双L稜寸(=L辺心寸*稜芯寸/L面芯寸) LET d22 = d02(d10,2) * d17 / d19 ! 双M稜寸(=M辺心寸*稜芯寸/M面芯寸) LET d23 = d02(d11,2) * d17 / d20 ! 双S稜寸(=S辺心寸*稜芯寸/S面芯寸) LET d24=d02(d09,3) LET d25=d02(d10,3) LET d26=d02(d11,3) LET d27 = SQR(d21^2 - (d24/2)^2) + SQR(d16^2 - d24^2)/2 ! 双Lかど心寸 LET d28 = SQR(d22^2 - (d25/2)^2) + SQR(d16^2 - d25^2)/2 ! 双Mかど心寸 LET d29 = SQR(d23^2 - (d26/2)^2) + SQR(d16^2 - d26^2)/2 ! 双Sかど心寸 LET d30 = d27 * d02(d09,3)/2 * d12 ! LET d31 = d28 * d02(d10,3)/2 * d13 ! LET d32 = d29 * d02(d11,3)/2 * d14 ! LET d33 = (d30+d31+d32) * d15 ! 面積 LET d34 = 1/SQR(1-d16^2)/2-SQR(1-d16^2)/2 ! 双面芯寸 LET d35=d33*d34/3 ! 体積 LET d36=SQR(1-d16^2) LET d37=1/(d36*2)-d36/2 PRINT d35,d33, ! 元の多面体の稜寸が 1 のときの 稜芯寸と同じ値の体積と面積 IF d03$(d08,1)="LL" THEN LET d38 = d21+d21 IF d03$(d08,1)="LM" THEN LET d38 = d21+d22 IF d03$(d08,1)="MM" THEN LET d38 = d22+d22 IF d03$(d08,1)="MS" THEN LET d38 = d22+d23 PRINT d35/d38^3, ! 双対多面体の一番寸法が小さい稜寸を 1 としたときの体積 PRINT d33/d38^2, ! 双対多面体の一番寸法が小さい稜寸を 1 としたときの面積 PRINT d03$(d08,2)! 名称 NEXT d08 ! <<計算に必要な既に分かっている定数 (角数の2は 角度0)>> ! |← 1つの頂の諸量 →| ! 01 02 03 04 05 06 07 08 09 10 ! M角数 L個数 S個数 ! L角数 S角数 M個数 頂数 基本数 最小稜形 DATA 3, 2, 2, 3, 1, 1, 4, .577350269189627 , "LL", "01 双対[3,3,3]" DATA 3, 2, 2, 4, 1, 1, 6, .707106781186549 , "LL", "02 双対[3,3,3,3]" DATA 4, 2, 2, 3, 1, 1, 8, .816496580927728 , "LL", "03 双対[4,4,4]" DATA 3, 2, 2, 5, 1, 1, 12, .850650808352041 , "LL", "04 双対[3,3,3,3,3]" DATA 4, 3, 2, 2, 2, 1, 12, .86602540378444 , "LM", "05 双対[3,4,3,4]" DATA 6, 3, 2, 2, 1, 1, 12, .904534033733292 , "LM", "06 双対[3,6,6]" DATA 4, 3, 2, 1, 4, 1, 24, .928191377985573 , "MM", "07 双対[3,3,3,3,4]" DATA 4, 3, 2, 3, 1, 1, 24, .933948831094466 , "LM", "08 双対[3,4,4,4]" DATA 5, 2, 2, 3, 1, 1, 20, .934172358962716 , "LL", "09 双対[5,5,5]" DATA 6, 4, 2, 2, 1, 1, 24, .948683298050515 , "LM", "10 双対[4,6,6]" DATA 5, 3, 2, 2, 2, 1, 30, .951056516295154 , "LM", "11 双対[3,5,3,5]" DATA 8, 3, 2, 2, 1, 1, 24, .959682982260668 , "LM", "12 双対[3,8,8]" DATA 5, 3, 2, 1, 4, 1, 60, .972732850565597 , "MM", "13 双対[3,3,3,3,5]" DATA 5, 4, 3, 1, 2, 1, 60, .974607762378171 , "MS", "14 双対[3,4,5,4]" DATA 8, 6, 4, 1, 1, 1, 48, .976450976246514 , "MS", "15 双対[4,6,8]" DATA 6, 5, 2, 2, 1, 1, 60, .979432085486415 , "LM", "16 双対[5,6,6]" DATA 10, 3, 2, 2, 1, 1, 60, .985721919281303 , "LM", "17 双対[3,10.10]" DATA 10, 6, 4, 1, 1, 1,120, .99131668954106 , "MS", "18 双対[4,6,10]" DATA 3, 4, 5, 6, 8, 10 END
2014年8月30日