角丸長方形はどこにでもある!

Folklore.org: Round Rects Are Everywhere! アンディ・ハーツフェルドの記事の翻訳。Macintosh開発当時の興味深い話です。

 

角丸長方形はどこにでもある!
著者:アンディ・ハーツフェルド
時期:1981年
登場人物:スティーブ・ジョブズビル・アトキンソン

http://www.folklore.org/images/Macintosh/roundrects.jpg

ビル・アトキンソンは多くの仕事を自宅でこなしていたが、何か重要なことがあれば即座にAppleに駆けつけ、それを理解できる人間に見せていた。今回彼は、ほんとにすごいアルゴリズムを思いつき、それを使った円弧の描画ルーチンを実装したので、テキサコタワーのマッキントッシュオフィスにやってきたのだった。

ビルは、当時まだLisaGrafと呼ばれていたMacintoshの描画ライブラリ、QuickDrawに円と円弧を描く新しいコードを追加した。円の数学が平方根を必要とするが、LisaとMacが使用していた68000CPUは浮動小数点演算を扱えなかったので、これは難しい問題だった。ビルは非常に賢いやりかたで、円の計算を足し算と引き算だけでできるものにしてしまった。68000は掛け算や割り算も使えたのだが、これらは遅かった。

ビルの工夫は、奇数の数列を足したものは常に自乗の数列になるということだった(1 + 3 = 4, 1 + 3 + 5 = 9, 1 + 3 + 5 + 7 = 16)。これを使用することでループ変数の脱出条件を簡単に求めることが出来、QuickDrawは円弧の描画を非常に素早く行うことが出来た。

これを使ったデモは、Lisaの画面をランダムなサイズの楕円が埋め尽くし、しかもはるかに想像をこえた速度だった。だが、スティーブ・ジョブズはこれになにか不満だったようだ。「なるほど、円と楕円はうまくいった。ところで角の丸まった長方形はどうだ?同じようにできるか?」

「いやそれは無理です。角丸長方形を実現するのは遥かに難しい。それにそんなもの必要ですか?」ビルはスティーブが円の高速描画を思ったほど評価せず、より多くを望んだことにムッと来ていたと思う。

スティーブは急に怒り出した。「角の丸まった長方形はどこにでもある! この部屋の中を見てみるといい!」実際そういう形はそこらじゅうに存在した。ホワイトボードもデスクも角丸長方形だった。次に彼は窓の外を指さした。「外を見てみろ!もっともっとあるだろう」彼はビルを連れ出して、角の丸まった長方形のものを見るたびに説得した。

最終的に角の丸い「駐車禁止標識」を示されたところでビルが折れた。「負けましたよ。どんなに困難でもやります」彼はその作業をやるために家に戻っていった。

何日か後の午後、ビルは満面の笑顔でテキサコタワーに戻ってきた。新しいデモは美しく角の丸まった長方形を猛烈な速度で描画していた。それはただの長方形を描くのと殆ど変わらなかった。このコードをLisaGrafに加える際、彼はこの角丸長方形を「RoundRects」と命名した。その後の何ヶ月かで角丸長方形は多くのユーザーインターフェース部品に取り入れられ、欠かせない要素になったのだった。

 初期のMacでDA用ウィンドウや、ボタンの描画に角丸長方形が多用されていたが、Windowsも、X11の各種ウィジェットも、角丸長方形をほとんど使用しない時代が長く続いた。輪郭に明色と暗色を使って立体的にするような発展はあったけど、ボタンは長い間四角いままだった。Windowsをバカにする系の典型的マカーだった僕がWindowsを使用するようになるのは、ボタンの角が丸くなったXPからである。それほど各丸長方形は重要だと思う。なんでWindows10でまたカクカクになるんだよおい(笑)