双対多面体の諸量 体積、面積

BASIC 多面体 諸量

今回は 双対多面体の体積や 面積計算の 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

« »