以下把複數平面中的端點視為向量,並用叉積判斷共線、點積判斷是否位於線段範圍內。
令
ζ=ζ10=eiπ/5=ei36∘,ϕ=21+5.
則
ζ5=−1,ϕ=ζ+ζ−1=ζ−ζ4,ϕ2=ϕ+1.
一、用五軸整數座標記錄折線
取五個無向軸
1, ζ, ζ2, ζ3, ζ4.
折線上的位移可以記為
W=c0+c1ζ+c2ζ2+c3ζ3+c4ζ4,cj∈Z.
對應的五軸整數記錄為
[c0,c1,c2,c3,c4].
要注意:這五個座標並不是線性獨立的。因為 ζ 的最小多項式是
1−ζ+ζ2−ζ3+ζ4=0,
所以
[c0,c1,c2,c3,c4]
和
[c0+k,c1−k,c2+k,c3−k,c4+k]
表示同一個平面向量。因此這裡的「五軸座標」比較準確地說是一種方便筆算的整數記錄,而不是唯一座標。
二、每一條線段如何轉成五軸整數記錄
假設一條線段方向是 ζn,也就是方向角為 36∘n。
利用
ϕζn=ζn−1+ζn+1,
以及
ϕ2=ϕ+1,
五種允許的長度可以寫成:
[
\begin{array}{c|c}
\text{長度} & \text{向量}\
\hline
1 & \zeta^n\
2 & 2\zeta^n\
\phi & \zeta^{n-1}+\zeta^{n+1}\
2\phi & 2\zeta^{n-1}+2\zeta^{n+1}\
\phi^2 & \zeta^{n-1}+\zeta^n+\zeta^{n+1}
\end{array}
]
最後把所有冪次化到 0,1,2,3,4。由
ζr+5=−ζr
可知,只要指數跨過 5,就把指數減去 5 並變號。例如
ζ5=−1,ζ6=−ζ,ζ−1=ζ9=−ζ4.
逐段相加,就得到整條折線各端點的五軸整數記錄。
三、用叉積和點積判斷 H 是否在線段 AB 上
令
U=B−A,V=H−A.
因為三個例子中 A=0,所以直接有
U=B,V=H.
在複數平面中,若
U=xU+iyU,V=xV+iyV,
定義:
點積
U⋅V=xUxV+yUyV=Re(UV).
叉積
U×V=xUyV−yUxV=Im(UV).
因此 H 在線段 AB 上的充要條件是
U×V=0
且
0≤U⋅V≤U⋅U.
其意義是:
- U×V=0:A,B,H 三點共線;
- U⋅V≥0:H 不在 A 的反方向;
- U⋅V≤U⋅U:H 沒有越過 B。
也可以寫成投影參數
t=U⋅UU⋅V.
在已知共線的情況下:
- 0≤t≤1:H 在線段 AB 上;
- t<0:H 在 A 的外側;
- t>1:H 在 B 的外側。
四、五軸記錄如何直接計算點積與叉積
若
U=i=0∑4aiζi,V=j=0∑4bjζj,
則兩根單位方向向量之間有
ζi⋅ζj=cos((j−i)36∘),
以及
ζi×ζj=sin((j−i)36∘).
因此
U⋅V=i=0∑4j=0∑4aibjcos((j−i)36∘),
U×V=i=0∑4j=0∑4aibjsin((j−i)36∘).
筆算時需要的值只有:
cos36∘=2ϕ,cos72∘=2ϕ−1,
cos108∘=−2ϕ−1,cos144∘=−2ϕ.
令
s=sin36∘,
則
sin72∘=ϕs,sin108∘=ϕs,sin144∘=s.
並且負角度變號:
sin(−θ)=−sinθ.
必須注意:五條軸不是互相垂直的,所以不能把點積錯算成
j=0∑4ajbj.
必須把不同軸之間的夾角也計入。
下面對三個例子逐一筆算。
五、例一
已知
A=0,
B=1+ζ−ζ4,
H=−2+ζ−ζ4.
五軸整數記錄分別為
B=[1,1,0,0,−1],
H=[−2,1,0,0,−1].
1. 先化簡共同部分
因為
ζ−ζ4=ϕ,
所以
B=1+ϕ=ϕ2,
以及
H=−2+ϕ=ϕ−2.
兩者都是實數,因此都位於實軸上。
2. 叉積
因為 B,H 都是實數,
B×H=Im(BH)=0.
所以 A,B,H 三點共線。
3. 點積
由於 B 和 H 都是實數,
B⋅H=BH.
因此
B⋅H=ϕ2(ϕ−2).
利用
ϕ2=ϕ+1,
得到
B⋅H=(ϕ+1)(ϕ−2)=ϕ2−ϕ−2=(ϕ+1)−ϕ−2=−1.
所以
B⋅H=−1<0.
雖然三點共線,但是 H 位於 A 的反方向。
4. 結論
H∈/AB
幾何次序是
H−A−B.
六、例二
已知
A=0,
B=2ζ−2ζ4,
H=−3+2ζ−2ζ4.
五軸整數記錄為
B=[0,2,0,0,−2],
H=[−3,2,0,0,−2].
1. 化簡
由
ζ−ζ4=ϕ
可得
B=2ϕ,
以及
H=−3+2ϕ=2ϕ−3.
兩者仍然都是實數。
因為
ϕ≈1.618,
所以
B≈3.236,H≈0.236.
從數值上已可看出 H 位於 0 和 B 之間。下面用精確點積判定。
2. 叉積
因為 B,H 都是實數,
B×H=0.
所以三點共線。
3. 點積
B⋅H=(2ϕ)(2ϕ−3)=4ϕ2−6ϕ=4(ϕ+1)−6ϕ=4−2ϕ.
因為 ϕ<2,所以
4−2ϕ>0.
另一方面,
B⋅B=(2ϕ)2=4ϕ2=4ϕ+4.
顯然
4−2ϕ<4ϕ+4.
所以
0<B⋅H<B⋅B.
兩個線段範圍條件都成立。
4. 也可以計算參數 t
t=B⋅BB⋅H.
由於 B,H 共線且同方向,也可以直接寫成
t=BH=2ϕ2ϕ−3.
利用
ϕ1=ϕ−1,
可得
t=2(2ϕ−3)(ϕ−1)=22ϕ2−5ϕ+3=22(ϕ+1)−5ϕ+3=25−3ϕ.
數值約為
t≈0.07295.
所以
0<t<1.
5. 結論
H∈AB
而且 H 位於從 A 到 B 約 7.3% 的位置。
七、例三
已知
A=0,
B=1+ζ−ζ4,
H=−2+3ζ−2ζ2+ζ3−ζ4.
五軸記錄為
B=[1,1,0,0,−1],
H=[−2,3,−2,1,−1].
與例一相同,
B=1+ζ−ζ4=1+ϕ=ϕ2.
所以 B 是正實數。此時判斷 H 是否與 B 共線,只需要檢查 H 的虛部是否為零。
1. 計算 H 的實部
利用
cos36∘=2ϕ,
cos72∘=2ϕ−1,
cos108∘=−cos72∘,
cos144∘=−cos36∘,
得到
Re(H)=−2+3cos36∘−2cos72∘+cos108∘−cos144∘.
代入對稱關係:
Re(H)=−2+3cos36∘−2cos72∘−cos72∘+cos36∘=−2+4cos36∘−3cos72∘.
再代入 ϕ:
Re(H)=−2+4(2ϕ)−3(2ϕ−1)=−2+2ϕ−23ϕ−3=2−4+4ϕ−3ϕ+3=2ϕ−1.
所以
Re(H)=2ϕ−1.
2. 計算 H 的虛部
Im(H)=3sin36∘−2sin72∘+sin108∘−sin144∘.
利用
sin108∘=sin72∘,sin144∘=sin36∘,
可得
Im(H)=3sin36∘−2sin72∘+sin72∘−sin36∘=2sin36∘−sin72∘.
又因為
sin72∘=2sin36∘cos36∘=ϕsin36∘,
所以
Im(H)=(2−ϕ)sin36∘.
由於
2−ϕ>0,sin36∘>0,
因此
Im(H)=0.
這已經說明 H 不在實軸上,所以 A,B,H 不共線。
3. 直接計算叉積
因為
B=ϕ2
是正實數,所以
B×H=BIm(H).
因此
B×H=ϕ2(2−ϕ)sin36∘.
化簡前面的係數:
ϕ2(2−ϕ)=(ϕ+1)(2−ϕ)=2ϕ+2−ϕ2−ϕ=ϕ+2−(ϕ+1)=1.
故
B×H=sin36∘.
因為
sin36∘=0,
所以
B×H=0.
三點不共線。
4. 點積
雖然叉積已經足以判定 H 不在線段上,仍可計算點積:
B⋅H=BRe(H).
所以
B⋅H=ϕ22ϕ−1.
利用
ϕ2(ϕ−1)=(ϕ+1)(ϕ−1)=ϕ2−1=ϕ,
得到
B⋅H=2ϕ.
點積是正的,只表示 H 在 AB 方向上的投影落在正方向;但因為叉積不為零,H 並不位於直線 AB 上。
5. 結論
H∈/AB
原因是
B×H=sin36∘=0.
八、三個例子的總結
令 U=B−A、V=H−A,則結果為:
| 例子 | U×V | U⋅V | 判定 |
|---|
| 例一 | 0 | −1 | 共線,但 H 在 A 的反方向,不在線段上 |
| 例二 | 0 | 4−2ϕ | 0<U⋅V<U⋅U,在線段上 |
| 例三 | sin36∘ | ϕ/2 | 不共線,不在線段上 |
因此:
例一:不在線段上
例二:在線段上
例三:不在線段上
整個筆算判定程序可以固定寫成:
- 計算 U=B−A、V=H−A;
- 用 ζ−ζ4=ϕ 等關係先化簡;
- 計算
U×V=Im(UV);
- 若叉積不為零,立即判定不在線段上;
- 若叉積為零,再計算
U⋅V=Re(UV);
- 檢查
0≤U⋅V≤U⋅U.