三角関数を用いずに、円の方程式(x*x+y*y=r*r)だけで特定の内角の円弧が描けるかの検証プログラムです。 円弧は隣接する「横」「斜め」「縦」の点うち、最も半径誤差が少なくなる方向への移動で描画します。 円弧は、目標とする中心角の円弧長さを求め、上記隣接点への移動に際して「横」「縦」は1、「斜め」は√2の微小円周だけ移動したとして累積し、目標円弧長になった時点で終了とします。 ただし、実際に描画すると累積円弧が実際より長くなるようなので、0.948倍(実験により決定)して使ってます。 追記:友人により、円周と外接8角形の辺長の比に相当することがわかりました。π/(8(√2-1))≒0.948。なので、この式に修正しました。
円の描画方式はオーソドックスなものですが、今は自分で書く人は居ないので知らない人も多いかもしれませんね。 「各隣接点への移動の中で、もっとも誤差の少ない点を選ぶ」というのは様々な図形描画で使えます。