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
Matplotlib-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/matplotlib-devel

Reply via email to