下了第一行代码。
接下来的四个小时,是无声的战斗。
第一个晚上,他勉强搭建起了程序的骨架,定义了几个立方体的顶点,并让它们以极其笨拙的方式「旋转」——实际上只是坐标的简单加减,图形在屏幕上扭曲变形,完全看不出立方体的样子。
但陆怀民没有气馁。他知道第一步迈出去了。
第二天晚上,他引入了真正的三维旋转矩阵。投影公式修正了三次,才让图形看起来不那么扁平。
第三天,他加入了第二个、第三个简单几何体,并开始编写判断它们之间最小距离的算法。
内存开始报警,他不得不精打细算,合并数组,优化循环。
一周时间,在每日夜深人静的四小时里飞快流逝。
当陆怀民第七次坐在控制台前时,他面前的程序已经初具雏形。
它可以定义几个基本形状的「零件」,赋予它们粗略的尺寸,将它们按照设定的位置「装配」起来,并通过不断地旋转视图,用高亮线条标出那些靠得太近、可能发生干涉的区域。
计算还很粗糙,精度只到零点一毫米量级,图形全是线框,没有遮挡,没有光影,简陋得如同儿童涂鸦。
但这就是一个雏形。一个能在计算机里,用数字和逻辑,而非纸张和想像,来构建和检验机械结构的雏形。
陆怀民将它命名为「gd-01」——「几何设计-初版」。
按陆怀民后世的眼光来看,它的难度和完成度略高于后世计算机系的本科设计。
他一周时间做到这一步,在1979年的环境下,还是相当有天赋的。
但陆怀民知道,这离真正的「辅助设计」还很远。
它更像一个可交互的、能进行粗略空间占位检查的「电子沙盘」,而非设计工具。
「或许……可以先从二维参数化开始?」一个新的想法在他脑中成形。
三维直接交互太难,但可以先在二维剖面上,实现尺寸驱动图形的变化。
这更接近工程师绘图板上的工作模式,也更容易验证。
接下来的一周,陆怀民调整了方向。
他利用gd-01的基础图形功能,开始构建一个独立的、更专注于二维平面参数化绘图的模块。
他定义了「点」、「直线」、「圆」、「圆弧」等基本图元,并赋予它们「长度」、「半径」、「角度」、「坐标」等属性。
最关键的