# animated line drawing

Is it possible to draw a line in sagemath as like javascript?

A Demo: http://jsfiddle.net/m1erickson/7faRQ/

edit retag close merge delete

Sort by » oldest newest most voted

For sure, see the animated plots documentation.

EDIT: here is a possible solution:

def drawlines(lines, ns, **options):
r"""
Input:
- lines: a list of lines, each line being defined
by its endpoints as [(x1,y1), (x2,y2)]
- ns: the number of division of each line for the
animation
- **options: any option to pass to the graphic
command line, like color or thickness
"""
resu = []
preceeding = Graphics()
for li in lines:
x1, y1 = li
x2, y2 = li
dx = float(x2 - x1)/float(ns)
dy = float(y2 - y1)/float(ns)
for i in range(ns):
xx = x1 + (i+1)*dx
yy = y1 + (i+1)*dy
resu.append(preceeding + line([(x1,y1), (xx,yy)], **options))
preceeding = resu[-1]
return resu

anim = animate(drawlines([[(1,2), (3,4)],
[(3,4), (3,0)],
[(3,0), (1,2)]], 10, color='red', thickness=2),
xmin=0, xmax=4, ymin=0, ymax=5)

anim.show(delay=5)


You can see it at work on SageMathCell.

more

please tell me the exact example from your url. I can't find the example I want. I mean drawing a line, not moving a drawed line.

Well, you may draw the line as a sequence of small segments and then animate it.

How can I plot the trace of animated line? If I draw small segments of a line, all segments will be drawed at the same time. Is there 'wait()' like command in sage?