当時において、座標値を複素数にして、計算が楽になったと喜んでいましたが、面積計算と交点計算がまだまだ時間がかかっておりました。
面積計算については、右のコピーのように、「書式攻略ノート」のP191に、図の三角形のK3点を求める方法が解説されていました。
この解説の計算式はまぎれもなく、元の三角形全体の面積を求める方法です。
丁寧に読むと、各点のx座標とy座標を縦にならべて、たすき掛けに掛け算をして引算をすればよいと、書いてある。そして、「座標値に同一数字を加えても、減じても結果は同一である」。従って、各点の座標値から、K1点の座標値を引いて計算すると、K1の数値が0となるので、実質的に図の二つの線にしたがって計算すれば面積が求まるとある。
座標値、K1、K2、K4がメモリに入れるわけだから、最初の0にする方法は、K2-K1とK4-K1で実現できる。あとは、この二つをどんな計算をして電卓で計算できるかを探すことになる。
試行錯誤を重ねた結果として、を使用することにより計算ができることがわかりました。
倍面積は、(K2-K1)×(K4-K1)で求まる。
これで、面積計算が楽にできるようになできるようになったはずであるが、問題を解いていうちに求める形の角数が多いので、三角形に分割していても、大変であることに気がつき、さらに探求を進めていく。四角形の面積計算をする方法はないか。
これは、夏にプールで泳いでいるときに、頭が空っぽになりそのときに思いついたものである。
対角線に座標値を引き算して、片方にを作用させて掛け算する。
この方法は次の図のように考えると直感的な理解ができると思う。
三角形の底辺に対して平行に頂点を動かしても面積は変わらないことを応用しています。
座標値から倍面積を求める公式は各点の座標Tn=(Xn,Yn)とすると
(Xn+1-Xn)(Yn+1+Yn)
の合計である。
この式を因数分解すると
Xn+1(Yn+1+Yn)-Xn(Yn+1+Yn)
Xn+1Yn+1+Xn+1Yn-XnYn+1-XnYn
この式が各点で計算されるので、
Xn+2Yn+2+Xn+2Yn+1-Xn+1Yn+2-Xn+1Yn+1
Xn+1Yn+1+Xn+1Yn-XnYn+1-XnYn
XnYn+XnYn-1-Xn-1Yn-Xn-1Yn-1
つまり、
Xn+1Yn-XnYn+1
の合計であるといえる。
ところで、Yを虚数軸としてみた座標Tn=Xn+Yniとみると
Tn*conjg(Tn+1)=(Xn+Ynⅰ)(Xn+1-Yn+1ⅰ)
この式を因数分解すると
(Xn+Ynⅰ)(Xn+1-Yn+1ⅰ)
=Xn(Xn+1-Yn+1ⅰ)+Ynⅰ(Xn+1-Yn+1ⅰ)
=XnXn+1-XnYn+1ⅰ+Xn+1+YnYn+1
=XnXn+1+YnYn+1+Xn+1Ynⅰ-XnYn+1ⅰ
=(XnXn+1+YnYn+1)+(XnYn+1-Xn+1Yn)ⅰ
虚数値のみでみると
XnYn+1-Xn+1Yn
であり、倍面積の公式と一致する。
よって、倍面積を求める方法は
Tn*conjg(Tn+1)
の虚数値の合計である。
たとえば、四角形ABCMの倍面積は
A*conjg(B)+B*conjg(C)+C*conjg(M)+M*conjg(A)
の虚数部である
理論上これは何角形でも当てはまるが、座標値を2回づつ使うので、実質的にはメモリが使える七角形までである(fx991ESの場合)。