由于插入会填充到点的右侧和下方的缓冲区,新的图表打印函数应该首先打印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函数定义的每个部分。