easygraphics.turtle包¶
海龟作图包。
海龟作图是一个经典的儿童学习的编程工具。
在海龟作图中,你控制一个海龟在窗口上移动。海龟移动时留下的痕迹就是你画出的图形。
注意,在海龟作图中,原点(0,0)是绘图窗口的中心,Y轴朝上。
from easygraphics.turtle import *
def polyspi(side, angle, inc):
while is_run():
fd(side)
rt(angle)
side += inc
create_world(800, 600)
set_speed(100)
polyspi(0, 117, 5)
close_world()
函数列表¶
海龟世界设置¶
create_world (width, height) |
创建一个海龟作图的世界。 |
close_world () |
关闭海龟世界和绘图窗口 |
get_turtle () |
获取当前的海龟。 |
get_turtle_world () |
获取当前的海龟世界。 |
is_run () |
检查图形系统是否在运行。 |
pause () |
暂停程序,等待鼠标或者键盘按键。 |
set_immediate (immediate) |
设置当海龟移动时,是否显示动画 |
set_pen_size (width, image) |
设置指定图片的线宽(笔宽)。 |
海龟移动¶
back (distance) |
让海龟沿着当前的朝向向后移动指定的距离。 |
backward (distance) |
让海龟沿着当前的朝向向后移动指定的距离。 |
bk (distance) |
让海龟沿着当前的朝向向后移动指定的距离。 |
facing (x, y) |
转动海龟,朝向点(x,y)。 |
fd (distance) |
让海龟顺着当前朝向移动指定的距离。 |
forward (distance) |
让海龟顺着当前朝向移动指定的距离。 |
gotoxy (x, y) |
移动海龟到点(x,y)。 |
get_heading () |
获取海龟的朝向(角度) |
get_x () |
获取海龟当前位置的x坐标。 |
get_y () |
获取海龟当前位置的y坐标。 |
home () |
将海龟移动到原点(0,0),朝向向上。如果画笔处于落下状态,则会留下移动的痕迹。 |
is_out_of_window () |
检查海龟是否到图形窗口外。 |
hide () |
隐藏海龟。 |
left (degree) |
让海龟向左(逆时针)转动“degree”度。 |
left_turn (degree) |
让海龟向左(逆时针)转动“degree”度。 |
lt (degree) |
让海龟向左(逆时针)转动“degree”度。 |
move_arc (radius, angle) |
让海龟沿圆弧移动。 |
move_ellipse (radius_left, radius_top, angle) |
让海龟沿椭圆弧移动。 |
right (degree) |
让海龟向右(顺时针)转动“degree”度。 |
right_turn (degree) |
让海龟向右(顺时针)转动“degree”度。 |
rt (degree) |
让海龟向右(顺时针)转动“degree”度。 |
set_heading (angle) |
设置海龟朝向指定的角度。 |
setxy (x, y) |
将海龟的当前位置设置到点(x,y)。不会留下移动的痕迹。 |
set_speed (speed) |
设置海龟的移动速度 |
turn_to (angle) |
让海龟转动到朝向指定的角度。 |
show () |
显示海龟。 |
画笔和屏幕设置¶
clear_screen () |
从屏幕上清除所有已绘制的图形并重置海龟到起始状态。 |
cs () |
从屏幕上清除所有已绘制的图形并重置海龟到起始状态。 |
begin_fill () |
开始记录海龟的移动轨迹,用于填充。 |
end_fill () |
填充从上一次begin_fill()开始,海龟移动的轨迹形成的封闭图形。 |
pd () |
画笔落下(海龟移动时留下痕迹)。 |
pen_down () |
画笔落下(海龟移动时留下痕迹)。 |
pen_up () |
画笔抬起(海龟移动时不留痕迹)。 |
pu () |
画笔抬起(海龟移动时不留痕迹)。 |
函数¶
-
easygraphics.turtle.
create_world
(width: int = 800, height: int = 600) → None¶ 创建一个海龟作图的世界。
参数: - width – 绘图窗口的宽度
- height – 绘图窗口的高度
-
easygraphics.turtle.
close_world
() → None¶ 关闭海龟世界和绘图窗口
-
easygraphics.turtle.
forward
(distance: float)¶ 让海龟顺着当前朝向移动指定的距离。
参数: distance – 要移动的距离
-
easygraphics.turtle.
fd
(distance: float)¶ 让海龟顺着当前朝向移动指定的距离。
参数: distance – 要移动的距离
-
easygraphics.turtle.
backward
(distance: float)¶ 让海龟沿着当前的朝向向后移动指定的距离。
参数: distance – 要移动的距离
-
easygraphics.turtle.
back
(distance: float)¶ 让海龟沿着当前的朝向向后移动指定的距离。
参数: distance – 要移动的距离
-
easygraphics.turtle.
bk
(distance: float)¶ 让海龟沿着当前的朝向向后移动指定的距离。
参数: distance – 要移动的距离
-
easygraphics.turtle.
left_turn
(degree: float)¶ 让海龟向左(逆时针)转动“degree”度。
参数: degree – 要转动的角度
-
easygraphics.turtle.
lt
(degree: float)¶ 让海龟向左(逆时针)转动“degree”度。
参数: degree – 要转动的角度
-
easygraphics.turtle.
right_turn
(degree: float)¶ 让海龟向右(顺时针)转动“degree”度。
参数: degree – 要转动的角度
-
easygraphics.turtle.
rt
(degree: float)¶ 让海龟向右(顺时针)转动“degree”度。
参数: degree – 要转动的角度
-
easygraphics.turtle.
left
(degree: float)¶ 让海龟向左(逆时针)转动“degree”度。
参数: degree – 要转动的角度
-
easygraphics.turtle.
right
(degree: float)¶ 让海龟向右(顺时针)转动“degree”度。
参数: degree – 要转动的角度
-
easygraphics.turtle.
clear_screen
()¶ 从屏幕上清除所有已绘制的图形并重置海龟到起始状态。
-
easygraphics.turtle.
cs
()¶ 从屏幕上清除所有已绘制的图形并重置海龟到起始状态。
-
easygraphics.turtle.
gotoxy
(x: float, y: float)¶ 将海龟移动到点(x,y)。如果笔处于落下状态,则会留下痕迹。
参数: - x – 目标点的x坐标
- y – 目标点的x坐标
-
easygraphics.turtle.
home
()¶ 将海龟移动到原点(0,0),朝向向上。如果画笔处于落下状态,则会留下移动的痕迹。
-
easygraphics.turtle.
turn_to
(angle)¶ 让海龟转动到朝向指定的角度。
参数: angle – 新的朝向角度。
-
easygraphics.turtle.
facing
(x: float, y: float)¶ 转动海龟,朝向点(x,y)。
参数: - x – 目标点的x坐标
- y – 目标点的y坐标
-
easygraphics.turtle.
begin_fill
()¶ 开始记录海龟的移动轨迹,用于填充。
-
easygraphics.turtle.
end_fill
()¶ 填充从上一次begin_fill()开始,海龟移动的轨迹形成的封闭图形。
-
easygraphics.turtle.
setxy
(x: float, y: float)¶ 将海龟的当前位置设置到点(x,y)。不会留下移动的痕迹。
参数: - x – 目标点的x坐标
- y – 目标点的y坐标值
-
easygraphics.turtle.
set_heading
(angle)¶ 设置海龟朝向指定的角度。
参数: angle – 新的朝向角度。
-
easygraphics.turtle.
move_arc
(radius: float, angle: float = 360)¶ 让海龟沿圆弧移动。
移动时,圆心在海龟左侧的radius单位处。也就是说,如果radius大于0,则圆心在海龟左侧;如果radius小于0,圆心在海龟右侧。
如果参数“angle”大于0,海龟向前绕圆心移动;如果“angle”小于0,海龟向后绕圆心移动。
- 如果angle大于0且radius大于0,那么海龟向前移动,逆时针转向;
- 如果angle大于0且radius小于0,那么海龟向前移动,顺时针转向;
- 如果angle小于0且radius大于0,那么海龟向后移动,顺时针转向;
- 如果angle小于0且radius小于0,那么海龟向后移动,逆时针转向;
参数: - radius – 弧的半径
- angle – 海龟要移动多少角度
-
easygraphics.turtle.
move_ellipse
(radius_left: float, radius_top: float, angle: float = 360)¶ 让海龟沿椭圆弧移动。
参数“radius_left”是椭圆沿垂直于海龟朝向方向上的轴的半径,可以是正也可以是负;参数“radius_top”是椭圆沿平行于海龟朝向方向上的轴的半径,必须是正.
椭圆圆心在海龟左侧“radius_left”个单位远。也就是说,如果radius_left > 0, 椭圆中心在海龟左侧;如果radius_left < 0, 椭圆中心在海龟右侧。
如果参数“angle”大于0,海龟向前绕圆心移动;如果“angle”小于0,海龟向后绕圆心移动。
- 如果angle > 0且radius_left > 0,海龟向前移动,逆时针转向;
- 如果angle > 0且radius_left < 0,海龟向前移动,顺时针转向;
- 如果angle < 0 且radius_left > 0,海龟向后移动,顺时针转向。
- 如果angle < 0且radius_left < 0,海龟向后移动,逆时针转向;
参数: - radius_left – 椭圆在垂直于海龟朝向方向上的半径
- radius_top – 椭圆在平行于海龟朝向方向上的半径
- angle – 海龟要移动多少角度
-
easygraphics.turtle.
get_y
() → float¶ 获取海龟当前位置的y坐标。
返回: 海龟当前位置的y坐标
-
easygraphics.turtle.
get_x
() → float¶ 获取海龟当前位置的x坐标。
返回: 海龟当前位置的x坐标。
-
easygraphics.turtle.
get_heading
() → float¶ 获取海龟的朝向(角度)
返回: 海龟的朝向(角度)
-
easygraphics.turtle.
get_turtle
() → easygraphics.turtle.turleclass.Turtle¶ 获取当前的海龟。
返回: 当前的海龟
-
easygraphics.turtle.
get_turtle_world
() → easygraphics.turtle.turleclass.TurtleWorld¶ 获取当前的海龟世界。
返回: 当前海龟世界
-
easygraphics.turtle.
set_pen_size
(width: float, image: easygraphics.image.Image = None)¶ 设置指定图片的线宽(笔宽)。
它被用来画线或者轮廓线。
参数: - width – 线宽
- image – 要设置线宽的目标图片。None表示使用缺省目标图片(见set_target()和get_target())。
-
easygraphics.turtle.
set_immediate
(immediate: bool)¶ 设置当海龟移动时,是否显示动画
参数: immediate – True表示关闭动画(移动瞬间完成);False表示打开动画。
-
easygraphics.turtle.
set_speed
(speed)¶ 设置海龟的移动速度
参数: speed – 新移动速度
-
easygraphics.turtle.
pen_down
()¶ 画笔落下(海龟移动时留下痕迹)。
-
easygraphics.turtle.
pen_up
()¶ 画笔抬起(海龟移动时不留痕迹)。
-
easygraphics.turtle.
pu
()¶ 画笔抬起(海龟移动时不留痕迹)。
-
easygraphics.turtle.
pd
()¶ 画笔落下(海龟移动时留下痕迹)。
-
easygraphics.turtle.
hide
()¶ 隐藏海龟。
-
easygraphics.turtle.
show
()¶ 显示海龟。
-
easygraphics.turtle.
pause
()¶ 暂停程序,等待鼠标或者键盘按键。
>>> from easygraphics import * >>> init_graph(800,600) >>> pause() >>> close_graph()
-
easygraphics.turtle.
is_run
() → bool¶ 检查图形系统是否在运行。
返回: True表示图形系统正在运行
-
easygraphics.turtle.
is_out_of_window
() → bool¶ 检查海龟是否到图形窗口外。
返回: True表示在图形窗口中;False表示不在。
-
class
easygraphics.turtle.
Turtle
(world: easygraphics.turtle.turleclass.TurtleWorld)¶ 海龟类。
-
BASE_STEP
= 1¶
-
DEFAULT_ORENTATION
= 90¶
-
back
(distance: float)¶ 让海龟沿着当前的朝向向后移动指定的距离。
参数: distance – 要移动的距离
-
backward
(distance: float)¶ 让海龟沿着当前的朝向向后移动指定的距离。
参数: distance – 要移动的距离
-
begin_fill
()¶ 开始记录海龟的移动轨迹,用于填充。
-
bk
(distance: float)¶ 让海龟沿着当前的朝向向后移动指定的距离。
参数: distance – 要移动的距离
-
cancle_fill
()¶ 取消填充。
-
close
()¶ 关闭和清理海龟。
-
static
create_turtle_icon
() → easygraphics.image.Image¶ 创建缺省的海龟图标。
返回: 海龟图标图片
-
end_fill
()¶ 填充从上一次begin_fill()开始,海龟移动的轨迹形成的封闭图形。
-
facing
(x, y)¶ 转动海龟,朝向点(x,y)。
参数: - x – 朝向目标点的x坐标
- y – 朝向目标点的y坐标
-
fd
(distance: float)¶ 让海龟顺着当前朝向移动指定的距离。
参数: distance – 要移动的距离
-
forward
(distance: float)¶ 让海龟顺着当前朝向移动指定的距离。
参数: distance – 要移动的距离
-
get_heading
() → float¶ 获取海龟的朝向(角度)
返回: 海龟的朝向(角度)
-
get_icon
() → easygraphics.image.Image¶ 获取海龟的图标图片
返回: 图标图片
-
get_x
() → float¶ 获取海龟当前位置的x坐标。
返回: 海龟当前位置的x坐标。
-
get_y
() → float¶ 获取海龟当前位置的y坐标。
返回: 海龟当前位置的y坐标
-
gotoxy
(x, y)¶ 将海龟移动到点(x,y)。如果笔处于落下状态,则会留下痕迹。
参数: - x – 目标点的x坐标
- y – 目标点的x坐标
-
hide
()¶ 隐藏海龟。
-
home
()¶ 将海龟移动到原点(0,0),朝向向上。如果画笔处于落下状态,则会留下移动的痕迹。
-
is_filling
() → bool¶ 检查是否正在记录海龟的移动轨迹(用于填充)
返回:
-
is_out_of_window
() → bool¶ 检查海龟是否到图形窗口外。
返回: True表示在图形窗口中;False表示不在。
-
is_show
()¶ 检查海龟是否处于显示状态。
返回: True表示显示海龟,False表示隐藏。
-
left
(degree: float)¶ 让海龟向左(逆时针)转动“degree”度。
参数: degree – 要转动的角度
-
left_turn
(degree: float)¶ 让海龟向左(逆时针)转动“degree”度。
参数: degree – 要转动的角度
-
lt
(degree: float)¶ 让海龟向左(逆时针)转动“degree”度。
参数: degree – 要转动的角度
-
move_arc
(radius: float, angle: float = 360)¶ 让海龟沿圆弧移动。
移动时,圆心在海龟左侧的radius单位处。也就是说,如果radius大于0,则圆心在海龟左侧;如果radius小于0,圆心在海龟右侧。
如果参数“angle”大于0,海龟向前绕圆心移动;如果“angle”小于0,海龟向后绕圆心移动。
- 如果angle大于0且radius大于0,那么海龟向前移动,逆时针转向;
- 如果angle大于0且radius小于0,那么海龟向前移动,顺时针转向;
- 如果angle小于0且radius大于0,那么海龟向后移动,顺时针转向;
- 如果angle小于0且radius小于0,那么海龟向后移动,逆时针转向;
参数: - radius – 弧的半径
- angle – 海龟要移动多少角度
-
move_ellipse
(radius_left: float, radius_top: float, angle: float = 360)¶ 让海龟沿椭圆弧移动。
参数“radius_left”是椭圆沿垂直于海龟朝向方向上的轴的半径,可以是正也可以是负;参数“radius_top”是椭圆沿平行于海龟朝向方向上的轴的半径,必须是正.
椭圆圆心在海龟左侧“radius_left”个单位远。也就是说,如果radius_left > 0, 椭圆中心在海龟左侧;如果radius_left < 0, 椭圆中心在海龟右侧。
如果参数“angle”大于0,海龟向前绕圆心移动;如果“angle”小于0,海龟向后绕圆心移动。
- 如果angle > 0且radius_left > 0,海龟向前移动,逆时针转向;
- 如果angle > 0且radius_left < 0,海龟向前移动,顺时针转向;
- 如果angle < 0 且radius_left > 0,海龟向后移动,顺时针转向。
- 如果angle < 0且radius_left < 0,海龟向后移动,逆时针转向;
参数: - radius_left – 椭圆在垂直于海龟朝向方向上的半径
- radius_top – 椭圆在平行于海龟朝向方向上的半径
- angle – 海龟要移动多少角度
-
pd
()¶ 画笔落下(海龟移动时留下痕迹)。
-
pen_down
()¶ 画笔落下(海龟移动时留下痕迹)。
-
pen_up
()¶ 画笔抬起(海龟移动时不留痕迹)。
-
pu
()¶ 画笔抬起(海龟移动时不留痕迹)。
-
reset
()¶ 重置海龟状态。
-
right
(degree: float)¶ 让海龟向右(顺时针)转动“degree”度。
参数: degree – 要转动的角度
-
right_turn
(degree: float)¶ 让海龟向右(顺时针)转动“degree”度。
参数: degree – 要转动的角度
-
rt
(degree: float)¶ 让海龟向右(顺时针)转动“degree”度。
参数: degree – 要转动的角度
-
set_heading
(angle)¶ 设置海龟朝向指定的角度。
参数: angle – 新的朝向角度。
-
set_speed
(speed: int)¶ 设置海龟的移动速度
参数: speed – 新移动速度
-
setxy
(x, y)¶ 将海龟的当前位置设置到点(x,y)。不会留下移动的痕迹。
参数: - x – 目标点的x坐标
- y – 目标点的y坐标值
-
show
()¶ 显示海龟。
-
turn_to
(angle)¶ 让海龟转动到朝向指定的角度。
参数: angle – 新的朝向角度。
-
-
class
easygraphics.turtle.
TurtleWorld
(canvas: Optional[easygraphics.image.Image] = None)¶ 海龟在一个世界里移动和绘画。这个类代表海龟世界。
在用完这个类的对象时,你要记得调用close()方法来关闭它。
注意,在缺省的海龟世界中,我们使用标准的平面直角坐标系,原点(0,0)位于屏幕中间,X轴从左向右,Y轴从下到上;正的角度表示逆时针旋转;负的角度鄙视顺时针旋转。-
add_turtle
(turtle: easygraphics.turtle.turleclass.Turtle)¶ 将海龟放到世界中。
参数: turtle – 要放入的海龟
-
clear
()¶ 从屏幕上清除所有已绘制的图形并重置海龟到起始状态。
-
clear_screen
()¶ 从屏幕上清除所有已绘制的图形并重置海龟到起始状态。
-
close
()¶ 关闭海龟世界。
-
create_snap_shot
() → easygraphics.image.Image¶ 创建当前图像的一个快照。
返回: 快照图片。
-
create_turtle
()¶ 在世界中创建一个新的海龟,将它放到原点(0,0)处。
如果参数x和y的值是None,那么海龟会被放到原点(0,0)处
返回: 新创建的海龟对象。
-
cs
()¶ 从屏幕上清除所有已绘制的图形并重置海龟到起始状态。
-
get_height
() → float¶ 获取绘图窗口或图片的高度
返回: 绘图窗口或图片的高度
-
get_width
() → float¶ 获取绘图窗口或图片的宽度
返回: 绘图窗口或图片的宽度
-
get_world_image
()¶ 获取海龟世界的底图。
返回: 海龟世界的底图。
-
is_immediate
() → bool¶ 检查海龟移动是否瞬间完成(没有动画效果)。
返回: True表示关闭动画(移动瞬间完成);False表示打开动画。
-
is_on_screen
() → bool¶ 检查世界是否绘制到图形窗口中。
返回: True表示绘制到图形窗口中;False表示不是。
-
is_running
()¶
-
set_immediate
(immediate: bool)¶ 设置海龟移动时是否显示动画。
参数: immediate – True表示关闭动画(移动瞬间完成);False表示打开动画。
-
snap_shot_to_image
(image, x=0, y=0)¶ 创建当前世界的截屏,保存到指定图片中。
截屏内容会被保存到图片的(x,y)位置。
参数: - image – 要保存截屏内容的图片
- x – 目标位置的x坐标
- y – 目标位置的y坐标
-
-
easygraphics.turtle.
easy_run
(main_func: Callable, width=640, height=480)¶