在我们软件构造实验中,包含了MIT的原实验Turtle Graphcis的任务,接下来我就在完成这一实验过程中的思考谈谈个人关于底层实现和复用相关的观点。
MIT的原实验页面链接为http://web.mit.edu/6.031/www/fa18/psets/ps0/,通过阅读页面我们可以了解这一实验的目的。简要来说,就是实验给你提供了java语言下简化的turtle绘图模型的实现代码,要求你读懂这部分代码,接着能正确的运用这些代码来实现绘制多边形、计算轴承、计算凸包、设计个人图案等任务。由于这些任务难度不高,并且已在Lab1实验中完成,在本博客中不会涉及这些部分。在本博客中,我的讨论重点并不是对这些代码的运用,而是谈谈这些给定代码的实现原理和底层逻辑,从中给出我关于底层实现和复用的思考。
案例
现在我们着手于这一实验。首先,由于你无法连接MIT的服务器,因此不能按照实验页面的要求clone代码,可以从https://github.com/rainywang/Spring2022_HITCS_SC_Lab1/tree/master/P2中获取代码。
当你将代码clone到本地后,其实对本博客来说,实验页面的要求已经不会再使用了,只需要聚焦于这些代码即可。
我们先来谈谈Turtle,即海龟绘图。海龟绘图是对最早在 Logo 中引入的受欢迎的几何绘图工具的实现,它由 Wally Feurzeig, Seymour Papert 和 Cynthia Solomon 在 1967 年开发。在 Python 中,海龟绘图提供了一个实体“海龟”形象(带有画笔的小机器动物),假定它在地板上平铺的纸张上画线。在Python的Turtle库中,提供了诸多关于实现海龟移动、画笔控制、海龟状态等功能的方法,比如常用的有forward(),backward(),right(),left(),goto(),color()等。
但在本实验中,我们并非基于Python的Turtle中实现要求,而是用java来实现一个简化的Turtle模型。显然,由于Python中Turtle库十分复杂,用java语言完美复刻是难以实现且没有必要的,给出的代码也仅仅实现了海龟绘图的核心功能。现在我们来具体分析代码。
标签:Turtle,为例,代码,Graphcis,实验,海龟,绘图,MIT From: https://www.cnblogs.com/2022112842zbx/p/18189931