John,
You are going great guns with mpl1; I am trying to get spun up on
traits, and to understand where you are going with mpl1. In general I
like what I see--as expected. Regarding the following comments: I
recognize that you are engaged in a sketching activity, and I may be
thinking prematurely about detail.
You raised the question of 3D. I don't know anything about fancy 3D
with hardware acceleration etc., but for the simplest 3D it seems like
everything can be done at the model stage of the transformation;
everything after that is 2D. Maybe this doesn't get us very far; I
don't know how hidden-line removal would be handled for multiple paths.
It seems to me that in the interesting cases such as polar plots, map
projections, and simple 3D plotting, the Func class is really a
Projection class, so I suggest it be renamed to that, or to Proj if you
want something short. ("Func" always seemed a bit ugly.) It will
typically need additional attributes, and should supply additional
information. For example, for a given set of coordinate limits (say r
from 1 to 2 and theta from 0 to pi/2 in the polar case) it should be
able to provide a bounding box in the rectilinear coordinates. It will
need a method to generate a path that is "straight" in the original
coordinates, hence curved in the rectilinear coordinates. (This method
will probably be used both to calculate the bounding box and to generate
the axis objects, grids, bounding "polygon", and things like the bar
paths in a polar bar plot, for example.) I suspect it will also help to
have a method that returns a rotation matrix for each of a set of
points. This would be a help in generating an axis with tick marks in a
curvilinear system, and in orienting vectors drawn on a map projection.
This brings up another question, regarding the drawing model: what do
you view as (1) required and (2) not required but used if available? So
far, everything is in terms of moveto, lineto, and close_polygon. What
about curves? Do you anticipate sticking to line-segment paths, or do
you expect to use any curve-generation (bezier, arc, ellipse)
facilities? Is this something to be done as a phase-2 optimization,
after initially doing everything with line-segment paths?
Returning to a point of terminology: what you are calling Affine is
actually a very limited subset of affine transformations, correct?
Rotation and shear are not included.
Also, I was puzzled initially by the xlim and ylim attributes; these are
the bounds that get mapped to the 0-1 interval by the transform,
correct? If so, this is an additional specialization of your Affine
relative to the general meaning of the term.
Eric
-------------------------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc.
Still grepping through log files to find problems? Stop.
Now Search log events and configuration files using AJAX and a browser.
Download your FREE copy of Splunk now >> http://get.splunk.com/
_______________________________________________
Matplotlib-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/matplotlib-devel