2.2 正多角形
著者:梅谷 武
語句:正三角形, 正方形, 正五角形の対称変換群を視覚化する。
対称性, 対称変換群, 正二面体群, 正三角形, 正方形, 正五角形
作成:2010-09-30
更新: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()
sample211.lua
正方形せいほうけい, 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()
sample212.lua
正五角形せいごかくけい, 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()
sample213.lua
語  句
対称性 たいしょうせい, symmmetry
対称変換群 たいしょうへんかんぐん, symmetry transformation group
正二面体群 せいにめんたいぐん, dihedral group
正三角形 せいさんかくけい, equilateral triangle
正方形 せいほうけい, square
正五角形 せいごかくけい, equilateral pentagon
 
Published by SANENSYA Co.,Ltd.