首页 > 其他分享 >以MIT实验Turtle Graphcis为例,探讨底层实现和复用相关

以MIT实验Turtle Graphcis为例,探讨底层实现和复用相关

时间:2024-05-13 20:30:26浏览次数:14  
标签:Turtle 为例 代码 Graphcis 实验 海龟 绘图 MIT

​ 在我们软件构造实验中,包含了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

相关文章

  • ROS2:报错:package 'turtle_tf2_py' not found
    在学习tf坐标变换的乌龟小实验中,运行乌龟仿真程序出现的报错问题分析:原因还是没有先source一下解决:首先source/opt/ros/galactic/setup.bash然后再运行乌龟ros2launchturtle_tf2_pyturtle_tf2_demo.launch.py  参考:github上的一个老哥的回答   顺带......
  • turtle实现美国队长盾牌
    具体代码如下importturtle##绘画大圆turtle.pensize(10)#设置画笔大小为10pxturtle.pencolor('red')#设置画笔颜色turtle.circle(105)#画一个半径为105px的圆turtle.left(90)#向左旋转90度turtle.penup()#提笔turtle.forwa......
  • turtle库创建画笔对象
    From: https://mp.weixin.qq.com/s/Ywb2aatt043-SfgMry0k4A-------------------------------------------------------------------------------------110.turtle库创建画笔对象Original 周晓宇python 安迪python学习笔记 2024-04-2221:02 云南 【目录】 1.知......
  • 大语言模型(LLM)的逻辑推理能力的例子 —— 以ChatGPT3.5为例
    例子:......
  • maixcam如何无脑运行运行别人的模型(以安全帽模型为例)
    maixcam如何无脑运行运行别人的模型(以安全帽模型为例)本文章主要讲如何部署上传的模型文件,以及如果你要把你模型按照该流程应该怎么修改,你可以通过该文章得到你想要的应该,该应用也包含的退出按钮,是屏幕退出按钮,因为屏幕退出方便,所以我引用了sipeed的退出图片,之前的应用没设置退出......
  • 马蜂窝景点评论(以恭王府为例)
    1.python部分马蜂窝.py#-*-coding:utf-8-*-#@Time:2024/04/1518:34#@Author:快乐的小猴子#@Version:#@Function:importsubprocessfromfunctoolsimportpartialsubprocess.Popen=partial(subprocess.Popen,encoding='utf-8')importexecjsimpo......
  • SublimeText4离线安装插件 - 以 terminus 为例
    SublimeText4离线安装插件-以terminus为例在云桌面环境中没有外网,安装terminus插件有点波折,最终能用了,说下过程。网络上的博客,通常会说,点击菜单栏->Preferences->Browsepackages,在C:\Users\xxx\AppData\Roaming\SublimeText\Packages的目录中,或者它的User......
  • CF1933D Turtle Tenacity: Continual Mods
    思路:此题其实很简单,不要被邪恶的出题人迷惑了双眼。此题判断有解一共有两种情况。通过题意可以知道将原数组排序后如果\(b_{1}\neb_{2}\),那么最后的结果一定\(\ne0\),这是第一种情况。第二种情况其实就是第一种情况的变形,在排序后\(b_{1}=b_{2}\)的情况下,如果\(b\)......
  • 曙光高性能平台lammps安装示例 --------------------以地大北京高性能平台为例
    1背景(introduction):安装lammps是为了跑一些分子动力学模拟,学校用的应该是曙光的服务器(ui界面比较像),然后安装软件参考的教程是曙光官方的教程,虽然很有参考意义,但是确实是过时了,安装时走了很多弯路,记录一下。(如果没有linux基础知识,建议先熟悉一下操作,不然会云里雾里)tips:请阅读......
  • Docker-compose部署项目(Fastapi项目为例)
    1.有Dockerfile文件进行部署,Dockerfile内容参考FROM127.0.0.1:5000/py3.10-1COPYrequirements.txt.RUNpipinstall-ipip源-rrequirements.txt2.Docker-compose.yml文件env_file指定环境变量,看项目是否使用env环境变量volumes挂在工作目录映射,工作目录更改代码容......