フローチャートを描く(1)

冬休みの宿題で、フローチャートを自動で描くことを目指す。

ひし形の大きさ

判断を示すひし形の大きさはどのように決めればよいだろう。


中に書く文字列を長方形で表し、その大きさを、
幅をw、高さをhとする。
そのときの、ひし形の幅Wと高さHを求める。


ひし形と長方形の外側がd離れているとする。
そして、W+Hが最小になるように求める。
最初はひし形の面積が最小になるようしようと思ったが、
細長くなりそうなのでやめた。


最初に、d=0になるようにする。
中心を原点として第1象限で考える。
長方形の頂点の座標は(w/2, h/2)、
ひし形の方程式は、

 \frac{x}{\frac{W}{2}}+\frac{y}{\frac{H}{2}} = 1

これを頂点に通ることと最小条件からゴリゴリ計算すると、

W = w + M
H = h + M

ここで、
Mはwとhの相乗平均、あとのためにmは相加平均とする。


ここからWとHを同じだけ増してd離れるようにすると、
dはMに対して十分小さいとして近似を使って、

 W=w+M+\frac{2}{M}\sqrt{m(m+M)}d
 H=h+M+\frac{2}{M}\sqrt{m(m+M)}d

あとでweb上で実際に動くようにしたい。