1.4 初等幾何作図法
著者:梅谷 武
語句:初等幾何の作図法について記す。
弧, 円, 等辺, 直角, 等角, 有向線分
作成:2010-09-29
更新:2011-03-08
 Arc関数は、ともに0でなく、方向が異なり、長さが等しい二つの位置ベクトルが与えられたときに、それらが定める平面上において、原点を中心とするそれらの終点どうしを結ぶこ, arcを描く。弧は分割数の折れ線で近似される。この折れ線には直線と同じパラメータを設定することができる。

Arc

書式(1) Arc( 始点, 終点, 分割数, 色 )
書式(2) Arc( 始点, 終点, 分割数, 色, 太さ )
書式(3) Arc( 始点, 終点, 分割数, 色, 太さ, 破線型H, 破線型L )
書式(4) Arc( 始点, 終点, 分割数, 色, 太さ, 破線型H, 破線型L, 破線型係数 )
座標系 右手系
 Circle関数はArc関数と同じ引数でえん, circleを描く。

Circle

書式(1) Circle( 始点, 終点, 分割数, 色 )
書式(2) Circle( 始点, 終点, 分割数, 色, 太さ )
書式(3) Circle( 始点, 終点, 分割数, 色, 太さ, 破線型H, 破線型L )
書式(4) Circle( 始点, 終点, 分割数, 色, 太さ, 破線型H, 破線型L, 破線型係数 )
座標系 右手系

sample133.lua

package.path = "std/?.lua"
require( "Geometry" )
 
white  = Vector3.new( 1.0, 1.0, 1.0 )
yellow = Vector3.new( 1.0, 1.0, 0.0 )
AX = Vector3.new( 1.0, 0.0, 0.0 )
AY = Vector3.new( 0.0, 1.0, 0.0 )
Arc( AX, AY, 12, yellow, 2.0, 0xf0f0, 0xf0f0 )
Circle( 1.2*AX, 1.2*AY, 12, white, 1.0 )
 
tnNewObject()
sample133.lua
等辺とうへん, equilateralを表すために、LineCross関数が用意されている。角を表現するときはAngleArc関数を使う。

AngleArc

書式(1) AngleArc( A, B, C, r, 分割数, 色 )
書式(2) AngleArc( A, B, C, r, 分割数, 色, 太さ )
書式(3) AngleArc( A, B, C, r, 分割数, 色, 太さ, 破線型H, 破線型L )
書式(4) AngleArc( A, B, C, r, 分割数, 色, 太さ, 破線型H, 破線型L, 破線型係数 )
座標系 右手系
ABCにおいて、ABCに対応するBを中心とする半径rの弧を描く。

LineCross

書式(1) LineCross( A, B, C, l, n, 色 )
書式(2) LineCross( A, B, C, l, n, 色, 太さ )
書式(3) LineCross( A, B, C, l, n, 色, 太さ, 破線型H, 破線型L )
書式(4) LineCross( A, B, C, l, n, 色, 太さ, 破線型H, 破線型L, 破線型係数 )
座標系 右手系
ABCにおいて、辺ABの中央に直交する長さlの線をn(=1,2,3)本描く。

sample134.lua

package.path = "std/?.lua"
require( "Geometry" )
 
white  = Vector3.new( 1.0, 1.0, 1.0 )
yellow = Vector3.new( 1.0, 1.0, 0.0 )
A = Vector3.new( 2.0, 5.0, 0.0 )
B = Vector3.new( 0.0, 0.0, 0.0 )
C = Vector3.new( 4.0, 0.0, 0.0 )
dA = Vector3.new( -0.05,  0.25, 0.0 )
dB = Vector3.new( -0.15, -0.05, 0.0 )
dC = Vector3.new(  0.05, -0.05, 0.0 )
Line( A, B, white )
Line( B, C, white )
Line( C, A, white )
LineCross( A, B, C, 0.2, 2, yellow )
LineCross( C, A, B, 0.2, 2, yellow )
AngleArc( A, B, C, 0.4, 12, yellow )
AngleArc( A, C, B, 0.4, 12, yellow )
Print( A + dA, "A" )
Print( B + dB, "B" )
Print( C + dC, "C" )
 
tnNewObject()
sample134.lua
直角ちょっかく, right angleはRightAngle関数で表現する。

RightAngle

書式(1) RightAngle( A, B, C, r, 色 )
書式(2) RightAngle( A, B, C, r, 色, 太さ )
書式(3) RightAngle( A, B, C, r, 色, 太さ, 破線型H, 破線型L )
書式(4) RightAngle( A, B, C, r, 色, 太さ, 破線型H, 破線型L, 破線型係数 )
座標系 右手系
ABCにおいてABCが直角であるとき、辺長rの直角記号を描く。

sample135.lua

package.path = "std/?.lua"
require( "Geometry" )
 
white  = Vector3.new( 1.0, 1.0, 1.0 )
yellow = Vector3.new( 1.0, 1.0, 0.0 )
A = Vector3.new( 0.0, 2.0, 0.0 )
B = Vector3.new( 0.0, 0.0, 0.0 )
C = Vector3.new( 4.0, 0.0, 0.0 )
dA = Vector3.new( -0.05,  0.25, 0.0 )
dB = Vector3.new( -0.15,  0.0, 0.0 )
dC = Vector3.new(  0.00,  0.0, 0.0 )
Line( A, B, white )
Line( B, C, white )
Line( C, A, white )
RightAngle( A, B, C, 0.2, yellow )
Print( A + dA, "A" )
Print( B + dB, "B" )
Print( C + dC, "C" )
 
tnNewObject()
sample135.lua
等角とうかく, equiangularを示すためにArcCross関数が用意されている。

ArcCross

書式(1) ArcCross( A, B, C, r, l, n, 色 )
書式(2) ArcCross( A, B, C, r, l, n, 色, 太さ )
書式(3) ArcCross( A, B, C, r, l, n, 色, 太さ, 破線型H, 破線型L )
書式(4) ArcCross( A, B, C, r, l, n, 色, 太さ, 破線型H, 破線型L, 破線型係数 )
座標系 右手系
ABCにおいて、ABCに対応するBを中心とする半径rの弧を描き、その中央に直交する長さlの線をn(=1,2,3)本描く。

sample136.lua

package.path = "std/?.lua"
require( "Geometry" )
 
white  = Vector3.new( 1.0, 1.0, 1.0 )
yellow = Vector3.new( 1.0, 1.0, 0.0 )
A = Vector3.new( 4.0, 0.0, 0.0 )
B = Vector3.new( 3.0, 5.0, 0.0 )
O = Vector3.new( 0.0, 0.0, 0.0 )
C = ( T(B)*A + T(A)*B ) / ( T(A) + T(B) )
dA = Vector3.new(  0.00,  0.00, 0.0 )
dB = Vector3.new(  0.00,  0.25, 0.0 )
dC = Vector3.new(  0.05,  0.15, 0.0 )
dO = Vector3.new( -0.15,  0.00, 0.0 )
Line( O, A, white )
Line( O, B, white )
Line( O, C, white )
Line( A, B, white )
AngleArc( A, O, C, 0.4, 12, yellow )
AngleArc( B, O, C, 0.4, 12, yellow )
ArcCross( A, O, C, 0.4, 0.1, 1, yellow )
ArcCross( B, O, C, 0.4, 0.1, 1, yellow )
Print( A + dA, "A" )
Print( B + dB, "B" )
Print( C + dC, "C" )
Print( O + dO, "O" )
 
tnNewObject()
sample136.lua

Arrow

書式(1) Arrow( 始点, 終点, 色 )
書式(2) Arrow( 始点, 終点, 色, 太さ )
書式(3) Arrow( 始点, 終点, 色, 太さ, 破線型H, 破線型L )
書式(4) Arrow( 始点, 終点, 色, 太さ, 破線型H, 破線型L, 破線型係数 )
座標系 右手系

sample137.lua

package.path = "std/?.lua"
require( "Geometry" )
 
white  = Vector3.new( 1.0, 1.0, 1.0 )
yellow = Vector3.new( 1.0, 1.0, 0.0 )
A = Vector3.new( 2.0, 5.0, 0.0 )
B = Vector3.new( 0.0, 0.0, 0.0 )
C = Vector3.new( 4.0, 0.0, 0.0 )
dA = Vector3.new( -0.05,  0.25, 0.0 )
dB = Vector3.new( -0.15, -0.05, 0.0 )
dC = Vector3.new(  0.05, -0.05, 0.0 )
Arrow( A, B, white )
Arrow( A, C, white )
Line( B, C, white )
Arrow( B, B + Axis((A-B)/(C-B)), yellow )
Arrow( C, C + Axis((A-C)/(B-C)), yellow )
Print( A + dA, "A" )
Print( B + dB, "B" )
Print( C + dC, "C" )
 
tnNewObject()
sample137.lua
語  句
こ, arc
えん, circle
等辺 とうへん, equilateral
直角 ちょっかく, right angle
等角 とうかく, equiangular
有向線分 ゆうこうせんぶん, oriented segment
 
Published by SANENSYA Co.,Ltd.