一个有小海龟的绘图软件

一个有小海龟的绘图软件,第1张

CX-LOGO,这个软件不是特好用,特麻烦,可以锻炼智力,我记得小学时学过,当时觉得挺有意思的,后来才觉得无趣。你要下载百度一下就行了,^_^。其实,几何画板挺好用的(画图),比它强。

〔问题描述〕

设计并实现海龟抽象数据类型Turtle,并以此为基础设计一个演示海龟作图的程序。

〔基本要求〕

(1)设置海龟类型的基本 *** 作为:

procedure StartTurtleGraphlcs ;

{显示作图窗口,并在窗口内写出本人的姓名、上机号和实验题号。}

procedure StartTurtle;

{令海龟处于作图的初始状态。即显示作图窗口,并将海龟定位在窗口正中;}

{置画笔状态为落笔、龟头朝向为0度(正东方向)。}

procedure PenUp;

{改变画笔状态为抬笔。从此时起,海龟移动将不在屏幕上作图。}

procedure PenDown;

{改变画笔状态为落笔。从此时起,海龟移动将在屏幕上作图。}

function TurtleHeadins:inteser ;

{返回海龟头当前朝向的角度。}

function TurtlePos:PaPoint;

{返回海龟的当前位置。}

procedureMove(steps:Integer);

{依照海龟头的当前朝向,向前移动海龟steps步。}

procedureTurn(degrees:Integer);

{改变海龟头的当前朝向,逆时针旋转degrees度。}

procedure MoveTTo(newPos:aPolnt);

{将海龟移动到新的位置 newPos。如果是落笔状态,则同时作图。}

Procedure TurnTTo(angle:real);

{改变海龟头的当前朝向为,从正东方向起的angle度。}

proceduresetTurtleColor(color:Integer);

{设置海龟画笔的颜色为color。}

(2)利用上述定义的海龟实现作图命令,以画出任意长度的线段、任意大小的矩形和圆。

〔测试数据〕

由学生自行指定线段(的长度)、矩形(的长度和宽度)及圆(的半径)等参数。

〔实现提示〕

(1)海龟的相关类型说明为:

type penstate=(up,down);

aPoint=record v,h:real end;

newTurtle=record

heading:integer;

{龟头(画笔)方向,简称龟头朝向}

pen:penstate;

{画笔状态:uP抬笔,down落笔}

color:Integer;

{画笔当前颜色}

Pos:aPoint

{海龟当前位置}

end;

(2)将“海龟”实现为 Turbo Pascal的一个单元,并将其相关类型和变量说明封装在年元的实现部分,宿主程序仅通过单元的接口部分调用海龟进行作图。

Logo语言教程

>

repeat 5[fd 50 rt 140 fd 50 lt 68]

50是边长,可以自己修改成别的数字,

rt 140 和 lt 68 是画图过程中的两次转弯动作。右转的角度要永远比左转的角度大72度就可以保证画出来的是五角星。

你也可以用别的度数来试,比如150和78,100和28,都可以。不同的角度,画出来的效果是不一样的。五角星有的很“胖”,有的很“瘦”。

如果要想把五角星摆正,可以这样画:

rt 20 repeat 5[fd 50 rt 140 fd 50 lt 68]

提前右转一个角度,这个20度是这样算的:

90-140/2=90-70=20

如果你用别的角度如: rt a lt b, (a-b=72)

那么提前转弯的角度就是:90-a/2

以下是从logo的帮助文档里复制过来的关于towards命令的说明:

TOWARDS

Syntax

TOWARDS [xcoordinate ycoordinate]

Explanation

TOWARDS outputs a number which is the heading necessary for the turtle to rotate from its present position to the new position indicated by its input

list

SETHEADING TOWARDS [xcoordinate ycoordinate] heads the turtle in the direction of its input list

我试了一下,这个命令就是输出一个关于方向(角度)的数,用以指明海龟从现在所在的位置点朝向下一个目标位置点的方向(角度)。如果配合使用seth命令,就可以将海龟的方向直接指向目标点。

比如,海龟现在位于[0 0],如果海龟想要“看”向目标点[30 60],该设定多少度的方向呢?

towards [30 60]的结果是2657度,这样,只要使用seth 2657,就可以设置海龟的方向为2657度,海龟的头就朝向目标点[30 60]所在的方向了。

两个命令可以合起来用,就是 seth towards [30 60],意思就是“将海龟的头转向目标点[30 60]所在的方向”。

以上就是关于一个有小海龟的绘图软件全部的内容,包括:一个有小海龟的绘图软件、LOGO问题、logo 语言的命令等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/10116748.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-05
下一篇 2023-05-05

发表评论

登录后才能评论

评论列表(0条)

保存