マクロツイーター

はてダから移行した記事の表示が崩れてますが、そのうちに直せればいいのに(えっ)

冬休み課題②:円周率を使わない話

今年もあと残り数時間となりました。

年越しまで、特にやることないんだけど、残念ながら \expandafter のことはあまり解らないという人は、次の問題をやってみればどうでしょうか。

なぜこれが「円周率を使わない話」になるかといえば、

太郎くんが実際に得たのは円ではないから

です。

円ではない曲線の話

pict2e パッケージを用いて描かれる曲線はすべて、3 次 Bézier 曲線というタイプのものです。ところが、真の円(または円弧)は 3 次 Bézier 曲線ではないので、pict2e では「十分に円に近く見える 3 次 Bézier 曲線の連なり」で円を代用しているのです。

pict2e による半径 1 の「円」の描画では、第 1 象限の部分(上の図の赤い部分)を 1 つの Bézier 曲線で表し、残りの部分はこれを原点を中心にして 90° ずつ回転させたもので表しています。つまり、全部で 4 つの合同な曲線をつなげているわけです。

上図が赤い曲線を取り出したものです。この曲線は

始点が P0(1,0)、制御点が P1(1,α) と P2(α,1)、終点が P3(0,1) の 3 次 Bézier 曲線
ただし、α = 4(2 − 1) / 3

となっています。

これで、必要な情報は全て揃いました。それでは早速、太郎くんが描いた半径 1cm の「円」の面積を求めてみましょう!

*  *  *

これだけではあまりにも不親切なので、いくつかヒントを出します。

3 次 Bézier 曲線の式

始点が (x0,y0)、制御点が (x1,y1) と (x2,y2)、終点が (x3,y3) の 3 次 Bézier 曲線は、t をパラメタ変数とする以下に示す関数を用いて (x(t),y(t)) と表される。

曲線が囲む面積

パラメタ変数 t に関する式 (x(t),y(t)) で表される曲線の t = t0 から t1 の部分*1と原点が囲む領域(粗い言い方だが、要するに上の図の水色の部分のこと)の面積は以下の式で与えられる。

*  *  *

*「えっ何これ……? もはや全く以て TeX ネタじゃない……いくら何でもこれはひどすぎる」
ZR「というわけで、皆さん、来年も当ブログをよろしくお願いします!」

*1:この区間では曲線は原点に対して常に反時計周りに進んでいるものとする。