Sure. you may include it if you want.

-JJ



On Sat, Aug 23, 2008 at 12:10 AM, Jason Grout
<[EMAIL PROTECTED]> wrote:
> Jae-Joon Lee wrote:
>> Hi Jason,
>>
>> I did made a similar class sometime ago and I'm attaching it just in
>> case. I guess it is very similar to yours but I rely on
>> matplolib.patches.FancyArrow class to draw the arrow head.
>>
>> The circle drawn by scatter() command should be a circle with size s
>> (the third argument of the scatter command) in points . It seems that
>> it is implemented as a unit circle centered at (0,0) with a transform
>> corresponding to the size s (and offset). So you may try something
>> like below to calculate the size of the circle in data coord.
>>
>>   ax = gca()
>>   p = scatter([0],[0], 500.)
>>   tr = p.get_transforms()[0] + ax.transData.inverted()
>>   x1, y1 = tr.transform_point([0,0])
>>   x2, y2 = tr.transform_point([1,0])
>>   r = abs(x2 - x1)
>>
>> p is a collection object and p.get_transforms() is a list of transforms.
>> Note that a circle in the canvas coordinate(?) can be an ellipse in
>> data coordinates. So, I guess you'd better do things in the canvas
>> coordinates.
>>
>> For shortening your path, if you're only concerned with a straight
>> line, it should be straight forward. But I guess it would a bit tricky
>> to do this for general bezier curves (as in the example that Alan
>> linked). I think (but I may be wrong) there is no universal algorithm
>> to find the "all" intersecting points of two bezier curves. There may
>> be one for between a bezier curve and a circle. And in this case where
>> one point is inside the circle and the other is outside, one simple
>> way I can think of is to recursively bisect the bezier curve (similar
>> to the bisect root finding).
>
> Jae-Joon,
>
> Thank you very much.  I am just finishing implementing a working version
> of what I wanted in my ArrowLine class; it now shortens itself by a
> certain number of points (assuming a line, just using a scale
> transformation).  However, I use paths for drawing the arrowhead where
> you use patches.  I think I like the flexibility your approach offers.
> Do you mind if I include your code in the GPL-licensed Sage, and extend
> it to do this shortening thing that I need?  I still haven't decided
> which is ultimately better for what I need (my class or your class), but
> if you're willing to license your class in a compatible way, that
> provides a choice.
>
> Thanks,
>
> Jason
>
>
> -------------------------------------------------------------------------
> This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
> Build the coolest Linux based applications with Moblin SDK & win great prizes
> Grand prize is a trip for two to an Open Source event anywhere in the world
> http://moblin-contest.org/redirect.php?banner_id=100&url=/
> _______________________________________________
> Matplotlib-users mailing list
> Matplotlib-users@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/matplotlib-users
>

-------------------------------------------------------------------------
This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK & win great prizes
Grand prize is a trip for two to an Open Source event anywhere in the world
http://moblin-contest.org/redirect.php?banner_id=100&url=/
_______________________________________________
Matplotlib-users mailing list
Matplotlib-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/matplotlib-users

Reply via email to