2.2 正多角形
著者:梅谷 武
語句:正三角形, 正方形, 正五角形の対称変換群を視覚化する。
語句:正三角形, 正方形, 正五角形の対称変換群を視覚化する。
対称性, 対称変換群, 正二面体群, 正三角形, 正方形, 正五角形
作成:2010-09-30
更新:2011-03-08
更新:2011-03-08
図形の対称性たいしょうせい, symmmetryはその図形を不変にする合同変換の群れにより特徴付けられ、これらは合同変換群の部分群を成し、対称変換群たいしょうへんかんぐん, symmetry transformation groupと呼ばれる。正n角形の対称変換群は、正二面体群せいにめんたいぐん, dihedral groupDnであることが知られている。
ここでは正三角形、正方形、正五角形の正二面体群を群論的作図法により図示する。
正三角形せいさんかくけい, equilateral triangleの対称変換群D3 ≅ S3を図示する。
sample211.lua
package.path = "std/?.lua" require( "Geometry" ) a = ( math.sqrt( 3.0 ) / 2.0 ) * 0.8 function triangle() dxSetRenderState( D3DRS_CULLMODE, D3DCULL_NONE ) dxSetColorHSV( 0.0, 0.5, 1.0 ) dxTriangleMesh( 4, { 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.8, 0.0, 1.0, 0.0, 0.0, 0.0, -a, 0.0,-0.4, 0.0, 1.0, 0.0, 0.0, 0.0, a, 0.0,-0.4, 0.0, 1.0, 0.0, 0.0, 0.0 }, 1, { 0, 1, 2 } ) dxSetColorHSV( 120.0, 0.5, 1.0 ) dxTriangleMesh( 4, { 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.8, 0.0, 1.0, 0.0, 0.0, 0.0, -a, 0.0,-0.4, 0.0, 1.0, 0.0, 0.0, 0.0, a, 0.0,-0.4, 0.0, 1.0, 0.0, 0.0, 0.0 }, 1, { 0, 2, 3 } ) dxSetColorHSV( 240.0, 0.5, 1.0 ) dxTriangleMesh( 4, { 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.8, 0.0, 1.0, 0.0, 0.0, 0.0, -a, 0.0,-0.4, 0.0, 1.0, 0.0, 0.0, 0.0, a, 0.0,-0.4, 0.0, 1.0, 0.0, 0.0, 0.0 }, 1, { 0, 3, 1 } ) dxPrint( -0.0, 0.0, 0.8, 1.0, 1.0, 1.0, "1" ) dxPrint(-a-0.0, 0.0,-0.4, 1.0, 1.0, 1.0, "2" ) dxPrint( a+0.0, 0.0,-0.4, 1.0, 1.0, 1.0, "3" ) dxSetRenderState( D3DRS_CULLMODE, D3DCULL_CCW ) end Triangle = Figure.new( function() triangle() end ) E = Transformation.new( function() end ) R1 = Transformation.new( function() RotateZ( 120.0 ) end ) R2 = Transformation.new( function() RotateY( 180.0 ) end ) T1 = Transformation.new( function() Translate( 2.0, 0.0, 0.0 ) end ) T2 = Transformation.new( function() Translate( 0.0,-2.0, 0.0 ) end ) draw = E * Triangle draw = ( T1 * R1 ) * Triangle draw = ( T1^2 * R1^2 ) * Triangle draw = ( T2 * R2 ) * Triangle draw = ( T1 * T2 * R1 * R2 ) * Triangle draw = ( T1^2 * T2 * R1^2 * R2 ) * Triangle tnNewObject()
正方形せいほうけい, squareの対称変換群D4を図示する。
sample212.lua
package.path = "std/?.lua" require( "Geometry" ) function square() dxSetRenderState( D3DRS_CULLMODE, D3DCULL_NONE ) dxSetColorHSV( 0.0, 0.5, 1.0 ) dxTriangleMesh( 5, { 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, -0.7, 0.0, 0.7, 0.0, 1.0, 0.0, 0.0, 0.0, -0.7, 0.0,-0.7, 0.0, 1.0, 0.0, 0.0, 0.0, 0.7, 0.0,-0.7, 0.0, 1.0, 0.0, 0.0, 0.0, 0.7, 0.0, 0.7, 0.0, 1.0, 0.0, 0.0, 0.0 }, 1, { 0, 1, 2 } ) dxSetColorHSV( 90.0, 0.5, 1.0 ) dxTriangleMesh( 5, { 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, -0.7, 0.0, 0.7, 0.0, 1.0, 0.0, 0.0, 0.0, -0.7, 0.0,-0.7, 0.0, 1.0, 0.0, 0.0, 0.0, 0.7, 0.0,-0.7, 0.0, 1.0, 0.0, 0.0, 0.0, 0.7, 0.0, 0.7, 0.0, 1.0, 0.0, 0.0, 0.0 }, 1, { 0, 2, 3 } ) dxSetColorHSV( 180.0, 0.5, 1.0 ) dxTriangleMesh( 5, { 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, -0.7, 0.0, 0.7, 0.0, 1.0, 0.0, 0.0, 0.0, -0.7, 0.0,-0.7, 0.0, 1.0, 0.0, 0.0, 0.0, 0.7, 0.0,-0.7, 0.0, 1.0, 0.0, 0.0, 0.0, 0.7, 0.0, 0.7, 0.0, 1.0, 0.0, 0.0, 0.0 }, 1, { 0, 3, 4 } ) dxSetColorHSV( 270.0, 0.5, 1.0 ) dxTriangleMesh( 5, { 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, -0.7, 0.0, 0.7, 0.0, 1.0, 0.0, 0.0, 0.0, -0.7, 0.0,-0.7, 0.0, 1.0, 0.0, 0.0, 0.0, 0.7, 0.0,-0.7, 0.0, 1.0, 0.0, 0.0, 0.0, 0.7, 0.0, 0.7, 0.0, 1.0, 0.0, 0.0, 0.0 }, 1, { 0, 4, 1 } ) dxPrint( -0.8, 0.0, 0.8, 1.0, 1.0, 1.0, "1" ) dxPrint( -0.8, 0.0,-0.8, 1.0, 1.0, 1.0, "2" ) dxPrint( 0.8, 0.0,-0.8, 1.0, 1.0, 1.0, "3" ) dxPrint( 0.8, 0.0, 0.8, 1.0, 1.0, 1.0, "4" ) dxSetRenderState( D3DRS_CULLMODE, D3DCULL_CCW ) end Square = Figure.new( function() square() end ) E = Transformation.new( function() end ) R1 = Transformation.new( function() RotateZ( 90.0 ) end ) R2 = Transformation.new( function() RotateY( 180.0 ) end ) T1 = Transformation.new( function() Translate( 2.0, 0.0, 0.0 ) end ) T2 = Transformation.new( function() Translate( 0.0,-2.0, 0.0 ) end ) draw = E * Square draw = ( T1 * R1 ) * Square draw = ( T1^2 * R1^2 ) * Square draw = ( T1^3 * R1^3 ) * Square draw = ( T2 * R2 ) * Square draw = ( T1 * T2 * R1 * R2 ) * Square draw = ( T1^2 * T2 * R1^2 * R2 ) * Square draw = ( T1^3 * T2 * R1^3 * R2 ) * Square tnNewObject()
正五角形せいごかくけい, equilateral pentagonの対称変換群D5を図示する。
sample213.lua
package.path = "std/?.lua" require( "Geometry" ) function pentagon() dxSetRenderState( D3DRS_CULLMODE, D3DCULL_NONE ) dxSetColorHSV( 0.0, 0.5, 1.0 ) dxTriangleMesh( 6, { 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6, 0.0, 1.0, 0.0, 0.0, 0.0, -0.5706, 0.0, 0.1854, 0.0, 1.0, 0.0, 0.0, 0.0, -0.3527, 0.0,-0.4854, 0.0, 1.0, 0.0, 0.0, 0.0, 0.3527, 0.0,-0.4854, 0.0, 1.0, 0.0, 0.0, 0.0, 0.5706, 0.0, 0.1854, 0.0, 1.0, 0.0, 0.0, 0.0 }, 1, { 0, 1, 2 } ) dxSetColorHSV( 72.0, 0.5, 1.0 ) dxTriangleMesh( 6, { 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6, 0.0, 1.0, 0.0, 0.0, 0.0, -0.5706, 0.0, 0.1854, 0.0, 1.0, 0.0, 0.0, 0.0, -0.3527, 0.0,-0.4854, 0.0, 1.0, 0.0, 0.0, 0.0, 0.3527, 0.0,-0.4854, 0.0, 1.0, 0.0, 0.0, 0.0, 0.5706, 0.0, 0.1854, 0.0, 1.0, 0.0, 0.0, 0.0 }, 1, { 0, 2, 3 } ) dxSetColorHSV( 154.0, 0.5, 1.0 ) dxTriangleMesh( 6, { 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6, 0.0, 1.0, 0.0, 0.0, 0.0, -0.5706, 0.0, 0.1854, 0.0, 1.0, 0.0, 0.0, 0.0, -0.3527, 0.0,-0.4854, 0.0, 1.0, 0.0, 0.0, 0.0, 0.3527, 0.0,-0.4854, 0.0, 1.0, 0.0, 0.0, 0.0, 0.5706, 0.0, 0.1854, 0.0, 1.0, 0.0, 0.0, 0.0 }, 1, { 0, 3, 4 } ) dxSetColorHSV( 216.0, 0.5, 1.0 ) dxTriangleMesh( 6, { 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6, 0.0, 1.0, 0.0, 0.0, 0.0, -0.5706, 0.0, 0.1854, 0.0, 1.0, 0.0, 0.0, 0.0, -0.3527, 0.0,-0.4854, 0.0, 1.0, 0.0, 0.0, 0.0, 0.3527, 0.0,-0.4854, 0.0, 1.0, 0.0, 0.0, 0.0, 0.5706, 0.0, 0.1854, 0.0, 1.0, 0.0, 0.0, 0.0 }, 1, { 0, 4, 5 } ) dxSetColorHSV( 288.0, 0.5, 1.0 ) dxTriangleMesh( 6, { 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6, 0.0, 1.0, 0.0, 0.0, 0.0, -0.5706, 0.0, 0.1854, 0.0, 1.0, 0.0, 0.0, 0.0, -0.3527, 0.0,-0.4854, 0.0, 1.0, 0.0, 0.0, 0.0, 0.3527, 0.0,-0.4854, 0.0, 1.0, 0.0, 0.0, 0.0, 0.5706, 0.0, 0.1854, 0.0, 1.0, 0.0, 0.0, 0.0 }, 1, { 0, 5, 1 } ) dxPrint( -0.02, 0.0, 0.68, 1.0, 1.0, 1.0, "1" ) dxPrint( -0.6657, 0.0, 0.2163, 1.0, 1.0, 1.0, "2" ) dxPrint( -0.4114, 0.0,-0.5663, 1.0, 1.0, 1.0, "3" ) dxPrint( 0.4114, 0.0,-0.5663, 1.0, 1.0, 1.0, "4" ) dxPrint( 0.6657, 0.0, 0.2163, 1.0, 1.0, 1.0, "5" ) dxSetRenderState( D3DRS_CULLMODE, D3DCULL_CCW ) end Pentagon = Figure.new( function() pentagon() end ) E = Transformation.new( function() end ) R1 = Transformation.new( function() RotateZ( 72.0 ) end ) R2 = Transformation.new( function() RotateY( 180.0 ) end ) T1 = Transformation.new( function() Translate( 2.0, 0.0, 0.0 ) end ) T2 = Transformation.new( function() Translate( 0.0,-2.0, 0.0 ) end ) draw = E * Pentagon draw = ( T1 * R1 ) * Pentagon draw = ( T1^2 * R1^2 ) * Pentagon draw = ( T1^3 * R1^3 ) * Pentagon draw = ( T1^4 * R1^4 ) * Pentagon draw = ( T2 * R2 ) * Pentagon draw = ( T1 * T2 * R1 * R2 ) * Pentagon draw = ( T1^2 * T2 * R1^2 * R2 ) * Pentagon draw = ( T1^3 * T2 * R1^3 * R2 ) * Pentagon draw = ( T1^4 * T2 * R1^4 * R2 ) * Pentagon tnNewObject()
語 句
対称性 たいしょうせい, symmmetry対称変換群 たいしょうへんかんぐん, symmetry transformation group
正二面体群 せいにめんたいぐん, dihedral group
正三角形 せいさんかくけい, equilateral triangle
正方形 せいほうけい, square
正五角形 せいごかくけい, equilateral pentagon
Published by SANENSYA Co.,Ltd.