New package for drawing direction fields with gnuplot
Subject: New package for drawing direction fields with gnuplot
From: Mark H Weaver
Date: Tue, 16 Nov 2010 17:56:22 -0500
Hello all,
I have created a new package, drawdf, for drawing direction fields
using Maxima and gnuplot. Although it lacks the interactive
convenience of plotdf, it is far more flexible and produces nicer
looking results. It also has better integration with wxMaxima and
Imaxima, allowing inline plots via wxdrawdf.
For a brief demonstration of drawdf's capabilities, please see:
http://www.netris.org/~mhw/maxima/drawdf-demo.html
Note that drawdf is built upon the draw package, and passes very long
lists of graphic objects to draw2d. This exposes a scalability
problem with draw2d, namely that it requires stack space proportional
to the number of graphic objects. Fortunately, the fix is simple.
Just replace the recursive definition of draw-transform in draw.lisp
with the following iterative version:
(defun draw-transform (expr transform)
(reduce #'append
(mapcar #'(lambda (x) (draw-transform-one x transform))
expr)
:from-end t))
Drawdf is part of my recent work supporting the use of Maxima in two
classes on differential equations at Brown University, and more
importantly in an upcoming textbook by Vladimir Dobrushkin, due out
next year. However, the textbook can only describe commands which are
included in the official Maxima release.
With that in mind, is there any chance drawdf (plus the above fix)
could be included in the next Maxima release? :)
Comments and suggestions are of course welcome.
Best,
Mark