Hi,
Based on John's advice in a previous post about designing an Arrow class
(http://sourceforge.net/mailarchive/message.php?msg_id=9962785), i have
restarted from scratch, defining the stem as a Line2D instance and the
head as a RegularPolygon instance (for now, a triangle).
I can correctly set the orientation of the arrow head, and from
debugging information, the class seems to be basically working. The
class is imported in axes.py and i have defined the new methods
add_arrow() and arrow() in Axes. Arrows are stored in a list called
arrows (i know John advised to avoid the overhead of that---i am simply
trying to get it to work first).
Now, i know i am missing something (and this must be at the heart of
matplotlib): how are 'figure coordinates' transformed into 'axes
corrdinates'? I guess it has to do with the 'transforms' module but....
For instance, if i say
arrow( [0,1], [0,1] )
with the intent of drawing an arrow from (0,0) to (1,1), i can't see the
graphical result. Now if i say
arrow( [0,100], [0,100] )
I can see something (the arrow head). And this may or may not be the
source of my 2nd problem: the arrow head is drawn, but not the stem (as
in the thread linked to above). The draw() method of my Arrow class is
very simple:
self._stem.draw(renderer)
self._head.draw(renderer)
Any help would be greatly appreciated. I'll be happy to add spiff to the
Arrow class once i have a basic version of it working and contribute it
to matplotlib.
I can post some code if you would like; i just thought it would be too
long in a mailing list...
Thanks,
Dominique
ps: Thanks for the matplotlib manual!
--
No virus found in this outgoing message.
Checked by AVG Anti-Virus.
Version: 7.0.296 / Virus Database: 265.6.3 - Release Date: 12/21/2004
|