高级绘图指令¶
填充图形¶
begin_fill()和end_fill()之间绘制的图形会被填充。填充时未闭合的形状会自动闭合。
缺省状态下填充色是浅灰色。你可以使用easygraphics的set_fill_color()函数来改变填充色。
下面的程序绘制和填充了一个五角星。注意我们使用FillRule.WINDING_FILL规则,这样整个五角星都会被填充。
from easygraphics.turtle import *
from easygraphics import *
def main():
create_world(150, 150)
setxy(20,-50)
set_fill_rule(FillRule.WINDING_FILL)
begin_fill()
for i in range(5):
fd(100)
lt(144)
end_fill()
pause()
close_world()
easy_run(main)
沿圆弧移动¶
move_arc(radius,angle)让海龟沿圆弧路径移动。
移动时,圆心在海龟左侧的radius单位处。也就是说,如果radius大于0,则圆心在海龟左侧;如果radius小于0,圆心在海龟右侧。
Angle是圆弧对应的圆心角的角度。如果angle大于0,那么海龟绕圆心前进;如果angle小于0,那么海龟绕圆心后退。因此:
- 如果angle>0并且radius>0,那么海龟沿逆时针方向前进;
- 如果angle>0并且radius<0,那么海龟沿顺时针方向前进;
- 如果angle<0并且radius>0,那么回归沿顺时针方向后退;
- 如果angle<0并且radius<0,海龟沿逆时针方向后退。
from easygraphics.turtle import *
def main():
create_world(400, 300)
set_speed(10)
lt(45)
fd(100)
lt(90)
move_arc(100, 90)
lt(90)
fd(100)
lt(90)
fd(100)
rt(90)
move_arc(-100, 90)
rt(90)
fd(100)
rt(90)
bk(100)
rt(90)
move_arc(100, -90)
rt(90)
bk(100)
rt(90)
bk(100)
lt(90)
move_arc(-100, -90)
lt(90)
bk(100)
lt(90)
pause()
close_world()
easy_run(main)
沿椭圆弧移动¶
move_ellipse(radius_left, radius_top, angle)让海龟沿椭圆弧路径移动。
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,那么海龟沿逆时针方向后退;
from easygraphics.turtle import *
from easygraphics import *
def main():
create_world(400, 300)
set_speed(5)
lt(45)
set_fill_color(Color.LIGHT_RED)
begin_fill()
fd(100)
lt(90)
move_ellipse(100, 50, 90)
lt(90)
fd(50)
lt(90)
end_fill()
begin_fill()
fd(100)
rt(90)
move_ellipse(-100, 50, 90)
rt(90)
fd(50)
rt(90)
end_fill()
begin_fill()
bk(100)
rt(90)
move_ellipse(100, 50, -90)
rt(90)
bk(50)
rt(90)
end_fill()
begin_fill()
bk(100)
lt(90)
move_ellipse(-100, 50, -90)
lt(90)
bk(50)
lt(90)
end_fill()
pause()
close_world()
easy_run(main)
使用easygraphics函数¶
大多数easygraphics函数都可以在海龟作图中使用
下面的程序使用easygraphics函数来设置线宽、颜色,画一个圆,以及填充了一个矩形。
from easygraphics.turtle import *
from easygraphics import *
def main():
create_world(300,300)
set_line_width(3)
set_color("red")
set_background_color("lightgray")
set_fill_color(Color.LIGHT_BLUE)
begin_fill()
for i in range(4):
fd(100)
lt(90)
end_fill()
circle(50,50,30)
fill_rect(-100,-100,-50,-50)
pause()
close_world()
easy_run(main)