This project implements a simple API of turtle to draw line, rectangle, circle, text and convert the process into gif.
- Install the package.
pip3 install rabit
- Install
python-tk
.
Rabit splits the drawing board into grids x grids. To create a Rabit object, you should choose the grids (in a row/column) you want to split and the size(default is 600) of drawing board.
import rabit
# The first argument is the number of grids in a row/column.
# The second argument is the size of the drawing board.
rabit = rabit.Rabit(11, 600)
You can draw rectangle with draw_rect(row, col, rows=1, cols=1, color="black")
.
row
: row of the left up corner of the rectanglecol
: column of the left up corner of the rectanglerows
: length of the rectanglecols
: width of the rectanglecolor
: line color
You can paint rectangle with paint_rect(row, col, rows=1, cols=1, color="black", cover=Flase)
.
row
: row of the left up corner of the rectanglecol
: column of the left up corner of the rectanglerows
: length of the rectanglecols
: width of the rectanglecolor
: line colorcover
: if cover the text on it
You can clear rectangle with clear_rect(row, col, rows=1, cols=1, color="white")
.
row
: row of the left up corner of the rectanglecol
: column of the left up corner of the rectanglerows
: length of the rectanglecols
: width of the rectanglecolor
: line color
You can draw text with draw_text(row, col, text, color="black", font=("Times", 24))
.
row
: row of the textcol
: column of texttext
: textcolor
: text colorfont
: text font
You can draw line with draw_line(from_row, from_col, to_row, to_col, color="black")
.
from_row
: row of start pointfrom_col
: column of start pointto_row
: row of end pointto_col
: column of end pointcolor
: line color
You can convert the drawing process into gif with convert2gif(func, fps_for_eps, fps_for_gif)
.The conversion can split into two steps:
- Capturing pictures at a certain rate while drawing.
- convert all pictures(.eps) into a gif at a certain FPS by
imageio
.
import rabit
def your_draw_function():
...
# The first argument is the name of your draw function.
# The second argument is the FPS(or rate) of the capturing process.
# The third argument is the FPS of the final gif.
rabit.convert2gif(your_draw_function, 10, 5)
There are other functions you can use:
speed(speed)
: set the drawing speeddelay(time)
: set the delay time(ms)pensize(pensize)
: set the pensizebegin_hide()
: hide the following drawing animationend_hide()
: end of the hidinghold()
: don't close the window after the drawing
There is an example in the example directory.
The converted gif is: