【硅谷革命】18. 到处都是圆角矩形

原文链接:Round Rects Are Everywhere!
作者:安迪·赫兹菲尔德

时间:1981 年 5 月
人物:史蒂夫·乔布斯、比尔·阿特金森
概要:史蒂夫通过现实世界的例子来启发比尔

roundrects.jpg

比尔·阿特金森基本上只在家工作,但是每当工作有了重大的进展,他就会冲到苹果的办公室,谁夸他一番,他就逮着谁炫耀炫耀。这一天,他又来到了位于德士古塔楼的苹果办公室,这一次他要展示的是他最新的椭圆形绘制程序,这个程序他使用了一种非常绝妙的算法。

比尔在 QuickDraw(当时还叫作 LisaGraf )里面加入了新代码,可以非常迅速地绘制出圆形和椭圆形。但是在麦金塔上做到这点还是有一定难度,因为绘制圆形一般都要涉及到开平方,Lisa 和麦金塔所采用的 68000 处理器却又不支持浮点运算。但是比尔想出了一个聪明的办法,只用加减法就实现了绘制圆形的运算,虽然 68000 处理器也能做乘除法,但是速度相当慢。

比尔运用了一个奇数列求和总是等于完全平方数的原理(例如, 1+3=4, 1+3+5=9, 1+3+5+7=16, ...),根据这个原理可以循环运算出坐标值,QuickDraw 因此就能够快速绘出椭圆了。

比尔开启了演示程序,Lisa 的屏幕上瞬间就覆盖满了大大小小的椭圆,速度之快超出了想象。但是史蒂夫·乔布斯并不满足:「嗯,圆形和椭圆形是很好,但是带圆角的长方形你觉得怎么样?我们是不是也做得出来?」

「不行,根本没门。这真的很难实现,而且我们根本不需要那个玩意儿。」我看比尔有点恼火,史蒂夫非但没有赞扬他这么快画出来椭圆形,竟然还得寸进尺。

史蒂夫突然变得很激动,「带圆角的长方形哪儿都是!你看看这个屋子里面。」当然,这样的例子随处可见,比如白板,桌子和椅子。他又指着窗外说:「你再看看外面,外面更多,哪儿都是!」他甚至说服比尔跟他一起出去在楼附近走一圈,一个个地指给他看圆角矩形的物体。

二人路过一个带着圆角的禁止停车标志时,史蒂夫终于达到目的了。「好啦,我投降。」比尔乞求道,「我去看看是不是我想象的那么难吧。」然后他就回家研究去了。

第二天下午,比尔带着灿烂的笑容重返德士古塔楼。他的演示程序现在可以画出带漂亮圆角的长方形了,而且跟绘制普通长方形一样惊人地快。比尔将代码添入了 LisaGraf,将新增的图形类别命名为「圆角矩形」(Roundrects)。随后数月里,圆角矩形被应用在各种用户界面当中,很快就成为了不可或缺的元素。(翻译:Colin Yang;一校:Mark Chen;二校:Jix Huang

《硅谷革命》连载之 1 - 18