找回密码
 立即注册
搜索
查看: 4495|回复: 31

[软件] Logo语言回顾

[复制链接]
     
发表于 2021-8-7 00:03 | 显示全部楼层 |阅读模式
本帖最后由 nanoka111 于 2021-8-17 20:27 编辑

因为前一阵子的启示,在此计划做一次这样的回顾。
知道Logo这种编程语言的坛友估计都是年龄很大接触电脑非常早的那种了,熟悉的知道这种语言的作用就是控制一只“海龟”在屏幕上作画。
通过网上查阅的资料后发现,Logo语言的原型是最早在60年代提出的一种计算机绘图方式——海龟绘图(Turtle graphics),就是模拟控制一只海龟在平面直角坐标系上爬行,通过海龟的爬行轨迹来实现绘图。这种绘图方式虽说不太符合计算机的显示规则,但更容易被没接触过计算机的人理解,所以更适合让儿童或初学者以此来学习编程。在Python语言里也加入了这种绘图方式的指令,大约是这种方式比较近期的应用了,其他听说还推出过绘图仪。
这种绘图方式的核心语句就4句:FORWARD、BACK、LEFT、RIGHT,其他的都属于辅助语句而已。

最早的Logo是MIT Logo,更确切说是Terrapin/Krell Logo。国内对这个版本应该多是通过中华学习机接触到的,里面内置固化了1.1版。事实上这个版本从2.0开始在语句指令上做了很多更新和改进,但当前大部分教材是基于1.0版写的,如果想要怀旧的化建议只用1.x版。
Apple Logo,更确切说是LCSI Logo,相对Terrapin/Krell Logo在语句指令上做了很多改进,使之更符合其他编程语言的使用习惯。事实上这个版本不止在Apple II上有,后来还推出了PC版,相对PC的使用习惯添加了一些指令。国内早年的微机课上所学的就是这个版本,大约是国内另一批接触到Logo语言的人了。
再就是TI Logo,也就是在得州仪器的电脑TI-99/4里使用的一种Logo,这个版本估计国内几乎没人接触过。这种Logo的最大特点就是用通常的方式只支持整数运算,但却可以通过一种名叫“小妖”(Sprite)的方式来实现动画效果。如果接触过FC上的F-BASIC就会明白,这些也都是F-BASIC具备的特性,只不过TI Logo却支持用点阵的方式来自定义“小妖”,但F-BASIC却只能使用系统内置的几个“小妖”。忽然觉得任天堂当年怎么不去做F-Logo……
还有就是当年“裕兴电脑”里内置的Logo,不得不说这个Logo是个残废,语句指令大约是沿用自Terrapin/Krell Logo,也有少量改动,原版很多指令和特性在此无法使用。如果想怀旧一下的化,这个绝不推荐。

最后贴一张简单的作品,是用Terrapin/Krell Logo来画的,以后如果有兴趣或许还会来点更复杂的。
AppleWin_ScreenShot_000000005.png
My_LOGO_Samples_000000000.png
Terrapin_Logo_1982_Terrapin_v1.2_000000000.png
My_LOGO_Samples_000000002.png
回复

使用道具 举报

     
发表于 2021-8-7 00:15 来自手机 | 显示全部楼层
小学教过。
回复

使用道具 举报

头像被屏蔽
     
发表于 2021-8-7 00:22 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

     
发表于 2021-8-7 00:23 | 显示全部楼层
本帖最后由 b0207191 于 2021-8-7 00:27 编辑

画图作为小孩计算机入门是很合适的,我觉得比一开始就学校basic或者c好多了,

Turtle Geometry (豆瓣) (douban.com)
image.png
回复

使用道具 举报

     
发表于 2021-8-7 00:42 | 显示全部楼层
上小学时见过一个DOS版的LOGO和一个图标是紫色三角形的Windows版的LOGO,不知道这两个具体是哪个版本。
回复

使用道具 举报

头像被屏蔽
发表于 2021-8-7 00:49 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

     
发表于 2021-8-7 00:56 来自手机 | 显示全部楼层
小学学过

—— 来自 HONOR NTH-AN00, Android 11上的 S1Next-鹅版 v2.4.4.1
回复

使用道具 举报

发表于 2021-8-7 00:59 | 显示全部楼层
小学画出过紫荆花(照着课本代码)
回复

使用道具 举报

     
发表于 2021-8-7 01:00 来自手机 | 显示全部楼层
小学教材上见过,没学,估计老师也不懂

—— 来自 Xiaomi Redmi K30 5G, Android 11上的 S1Next-鹅版 v2.4.4.1
回复

使用道具 举报

     
发表于 2021-8-7 02:03 来自手机 | 显示全部楼层
小学微机课学过,那时候微机室都是dos电脑。后来学校换电脑了,就没学这个了

—— 来自 OnePlus HD1900, Android 11上的 S1Next-鹅版 v2.4.4.1
回复

使用道具 举报

发表于 2021-8-7 02:57 | 显示全部楼层
编程启蒙……当时已经是windows系统了,学的是带gui的logo
当时照着书可以做一个特别复杂的五角星……
回复

使用道具 举报

     
发表于 2021-8-7 07:43 来自手机 | 显示全部楼层
小学学过

—— 来自 Xiaomi MI 6, Android 9上的 S1Next-鹅版 v2.4.4.1
回复

使用道具 举报

     
发表于 2021-8-7 07:52 来自手机 | 显示全部楼层
没用过,感觉还不如g代码?
回复

使用道具 举报

     
发表于 2021-8-7 08:28 来自手机 | 显示全部楼层
小学学过。现在接触东西多了,很怀疑它跟机床、CAD的关系。现代的SVG里也考path来规定复杂轨迹,没什么不符合显示规则的吧。
回复

使用道具 举报

     
发表于 2021-8-7 09:40 | 显示全部楼层
这东西每人一张5寸盘,要统考的,磁盘坏了就哭哭哦。

小时候可以写简单地图形游戏。
回复

使用道具 举报

发表于 2021-8-7 09:46 来自手机 | 显示全部楼层
本帖最后由 bbn 于 2021-8-7 10:08 编辑

DOS上常用的是 PC LOGO。

搜索了一下,这里介绍了一些现有的版本:

https://el.media.mit.edu/logo-foundation/resources/software_hardware.html
回复

使用道具 举报

     
发表于 2021-8-7 18:11 | 显示全部楼层
logo主要问题对数学要求的起点有点高,小学生要补很多内容,这是我入门语言,导致我后来对编程没什么好感。
初中GW basic,还行
大学学了c,才发现,当时logo那一套画图确实很难。
啊,最后学的生物。。。
回复

使用道具 举报

发表于 2021-8-7 19:00 来自手机 | 显示全部楼层
小学学过。当时还在纸上猛算五角星的角度,但因为没有基础知识,自然是想不通。
回复

使用道具 举报

     
发表于 2021-8-7 20:06 | 显示全部楼层
小学学过+1
考试要求画一个飞碟。
回复

使用道具 举报

头像被屏蔽
     
发表于 2021-8-7 20:49 来自手机 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

     
发表于 2021-8-7 22:24 | 显示全部楼层
小学学过
回复

使用道具 举报

     
发表于 2021-8-7 23:29 | 显示全部楼层
小学386机器上学过,可以循环画花
回复

使用道具 举报

发表于 2021-8-8 02:49 | 显示全部楼层
小学学过,还有计算机竞赛,不过对数学要求确实有点高,啥都不懂的情况下要求画曲线弧线啥的,结果就只能硬背。记得还有递归啥的当时根本听不懂,后来重新学写代码的时候才知道究竟是什么
回复

使用道具 举报

发表于 2021-8-8 04:08 | 显示全部楼层
小学学的是Basic,还是某种学习机上类似被Dijkstra讥讽为“glorified assembly”的dartmouth Basic,有指令内存、数据内存、没有函数只能参数手动入栈然后跳转subroutine,等等后来学了CSAPP后感觉非常魔幻

当时别家的小孩有学logo的,看他的教材序言里还把logo吹得神乎其神。但自己实际学了几下,觉得“卧槽什么玩意儿完全学不进去”,就作罢了
回复

使用道具 举报

     
发表于 2021-8-8 10:04 来自手机 | 显示全部楼层
小学的微机课想想非常硬核,硬件软件基础知识和发展史、打字练习、logo语言、DOS操作、win3.2操作(学了两节课就升级系统了)、win95操作、DOS版wps操作(好像没学几节课)、画图写字板等Windows程序基本操作、office三件套(最后考试让用ppt做个用到超链接的语文课件),还要在学这些的间隙打游戏
回复

使用道具 举报

     
发表于 2021-8-8 12:13 来自手机 | 显示全部楼层
我们初中电脑课学的是vb,不过只给上过2节课,高中电脑课学的是vfp,只上了一学期,那时候是2001年那块,学电脑主流是flash和网页三件套,好多有条件的同学都自学flash了。

—— 来自 vivo V1981A, Android 11上的 S1Next-鹅版 v2.4.4.1
回复

使用道具 举报

     
发表于 2021-8-8 19:20 | 显示全部楼层
我当年市少年宫用的是appleII的LOGO
回复

使用道具 举报

     
 楼主| 发表于 2021-8-8 19:22 | 显示全部楼层
楼里有人提到了五角星角度的问题,这个其实只要有平面几何知识就能轻易算出来,方法就是先做一个正五边形,在里面做一个内接五角星后来进行计算,具体算法在此就不赘述了。
这种算法还可以扩展成做出任意角的“星”出来,程序看起来很简单,但是用这个却能画出非常复杂的图形出来:
My_LOGO_Samples_000000001.png
这里展示的就是用Terrapin/Krell Logo来实现的源码,顶楼给出了一个实例。我后来还用VB、Java等编程语言实现这样的功能,这是用Python的海龟绘图实现的源码:
import turtle
turtle.speed(1)
def ninjastar(l, n, k):
    i=0
    while(i<n):
        turtle.forward(l)
        turtle.right(360*k/n)
        i+=1
    return
ninjastar(200,18,7)
回复

使用道具 举报

     
 楼主| 发表于 2021-8-8 20:08 | 显示全部楼层
在这里贴一些旧作吧,这些其实是我自学一本Logo书的作业解答,当时用的是PC版的LCSI Logo。
因为我的学校开微机课的时候已经用的是Windows系统了,所以我这些都是自学,代码都还留着,但现在也没时间重整了。
logo_001.png
logo_002.png
logo_003.png
logo_004.png
logo_005.png
logo_006.png
logo_007.png
回复

使用道具 举报

     
发表于 2021-8-8 23:04 | 显示全部楼层
昨晚搜索了下linux下目前logo都需要x window?  否则就报错



  File "/root/.pyenv/versions/3.7.0/lib/python3.7/tkinter/__init__.py", line 36, in <module>
    import _tkinter # If this fails your Python may not be configured for Tk
ModuleNotFoundError: No module named '_tkinter'
回复

使用道具 举报

头像被屏蔽
发表于 2021-8-9 01:07 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

     
发表于 2021-8-9 10:45 | 显示全部楼层
小学学过。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|上海互联网违法和不良信息举报中心|网上有害信息举报专区|962110 反电信诈骗|举报电话 021-62035905|Stage1st ( 沪ICP备13020230号-1|沪公网安备 31010702007642号 )

GMT+8, 2024-9-23 23:28 , Processed in 0.118746 second(s), 6 queries , Gzip On, Redis On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表