3.2 三角形とベクトル比
著者:梅谷 武
語句:三角形, ベクトル比, 二等辺三角形, 底角, 内角, 二等分線
ベクトル比を使って三角形の問題を解く。
作成:2010-07-15
更新:2011-03-08

命題3.2.1.1 二等辺三角形の底角の恒等性

二等辺三角形の二つの底角は等しい。すなわち、三角形ABCにおいてAB = ACならば∠B = ∠Cが成り立つ。
 三角形は二辺とその挟む角により決定されるから、例えばBC, BAを与えることにより定まる。これはBCとベクトル比
[BA]
[BC]
を与えることと同等である。
α := [AB], β := [AC]とおくと、次が成り立つ。
          
[BA]
[BC]
=
- α
β - α
=
α ∙ β - α ∙ α
|β - α|2
=
〈α,α〉 - 〈α,β〉 + α × β
|β - α|2
          
[CA]
[CB]
=
- β
α - β
=
β ∙ α - β ∙ β
|α - β|2
=
〈β,β〉 - 〈α,β〉 - α × β
|α - β|2
 ここで、Tα = Tβならば〈α,α〉 = 〈β,β〉であるから、二つのベクトル比は互いに共役である。
[BA]
[BC]
= K
[CA]
[CB]
これは角度が等しく、軸が反転していることを意味している。
package.path = "std/?.lua"
require( "Geometry" )
 
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 )
 
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()

命題3.2.2.1 三角形の内角和

三角形の内角の和は2∠Rに等しい。すなわち、三角形ABCにおいて∠A + ∠B + ∠C = 2∠Rが成り立つ。
 三角形の各頂点におけるベクトル比
[BA]
[BC]
=
- α
β
[CB]
[CA]
=
- β
γ
[AC]
[AB]
=
- γ
α
を平面上のベクトル変換として合成すると
- α
β
- β
γ
- γ
α
=  - 1
となり、これはベクトルの反転、すなわち180度の回転となっている。
package.path = "std/?.lua"
require( "Geometry" )
 
A = Vector3.new( 3.0, 4.0, 0.0 )
B = Vector3.new( 0.0, 0.0, 0.0 )
C = Vector3.new( 4.0, 0.0, 0.0 )
 
white  = Vector3.new( 1.0, 1.0, 1.0 )
yellow = Vector3.new( 1.0, 1.0, 0.0 )
red    = Vector3.new( 1.0, 0.0, 0.0 )
A = Vector3.new( 3.0, 4.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( B, C, white )
Arrow( C, A, white )
Line( B, C, white )
Arrow( A, A + Axis((C-A)/(B-A)), yellow )
Arrow( B, B + Axis((A-B)/(C-B)), yellow )
Arrow( C, C + Axis((B-C)/(A-C)), yellow )
q = ((A-B)/(C-B))*((B-C)/(A-C))*((C-A)/(B-A))
Arrow( B, B + V(q*(C-B)), red )
Print( A + dA, "A" )
Print( B + dB, "B" )
Print( C + dC, "C" )
 
tnNewObject()

命題3.2.3.1 内角の二等分線

三角形の内角の二等分線は対辺をその角を挟む二辺と同じ比に内分する。すなわち、三角形ABOにおいて、角Oの二等分線と対辺の交点をCとすれば、OA : OB = AC : CBが成り立つ。
AC:CBを実数比m:nで表すと
γ =
nα + mβ
m + n
ベクトル比γ/αをベクトルγに左から作用させると、βと重なることから
γ
α
γ = sβ,  ∃ s ∈
これに上の式を代入し、整理すると
n2
α
β
+ m2
β
α
= s(m + n)2 -2mn ∈
となり、左辺のベクトル部は0であることから次が成り立つ。
n
m
=
Tβ
Tα
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()
Published by SANENSYA Co.,Ltd.