由于插入会填充到点的右侧和下方的缓冲区,新的图表打印函数应该首先打印Y或垂直轴,然后是图表的主体,最后是X或水平轴。这个顺序为我们规定了函数的内容:
这是一个完成的图表应该看起来的示例:
10 - * * * * ** * *** 5 - * ******* * *** ******* ************* *************** 1 - **************** | | | | 1 5 10 15
在这个图表中,垂直轴和水平轴都用数字标记。然而,在一些图表中,水平轴表示时间,最好用月份标记,就像这样:
5 - * * ** * ******* ********** ** 1 - ************** | ^ | 一月 六月 一月
事实上,经过一点思考,我们可以轻松想出各种垂直和水平标记方案。我们的任务可能变得复杂。但是复杂性会导致混淆。与其允许这种情况发生,不如为我们的第一次尝试选择一个简单的标记方案,以后再进行修改或替换。
这些考虑建议了print-graph
函数的以下大纲:
(defun print-graph (numbers-list) "文档…" (let ((height … …))
(print-Y-axis height … ) (graph-body-print numbers-list) (print-X-axis … )))
我们可以逐步处理print-graph
函数定义的每个部分。