You can subscribe to this list here.
2003 
_{Jan}
(1) 
_{Feb}
(2) 
_{Mar}
(6) 
_{Apr}
(11) 
_{May}

_{Jun}
(2) 
_{Jul}

_{Aug}
(1) 
_{Sep}
(15) 
_{Oct}
(12) 
_{Nov}
(11) 
_{Dec}
(18) 

2004 
_{Jan}
(57) 
_{Feb}
(16) 
_{Mar}
(3) 
_{Apr}
(14) 
_{May}
(35) 
_{Jun}
(41) 
_{Jul}
(19) 
_{Aug}
(25) 
_{Sep}
(14) 
_{Oct}
(36) 
_{Nov}
(41) 
_{Dec}
(29) 
2005 
_{Jan}
(44) 
_{Feb}
(21) 
_{Mar}
(17) 
_{Apr}
(45) 
_{May}
(23) 
_{Jun}
(26) 
_{Jul}
(30) 
_{Aug}
(9) 
_{Sep}
(120) 
_{Oct}
(34) 
_{Nov}
(17) 
_{Dec}
(6) 
2006 
_{Jan}
(23) 
_{Feb}
(56) 
_{Mar}
(78) 
_{Apr}
(14) 
_{May}
(87) 
_{Jun}
(52) 
_{Jul}
(69) 
_{Aug}
(41) 
_{Sep}
(53) 
_{Oct}
(37) 
_{Nov}
(8) 
_{Dec}
(17) 
2007 
_{Jan}
(32) 
_{Feb}
(3) 
_{Mar}
(21) 
_{Apr}
(29) 
_{May}
(14) 
_{Jun}
(9) 
_{Jul}
(30) 
_{Aug}
(26) 
_{Sep}
(6) 
_{Oct}
(9) 
_{Nov}
(7) 
_{Dec}
(6) 
2008 
_{Jan}
(9) 
_{Feb}
(19) 
_{Mar}
(46) 
_{Apr}
(44) 
_{May}
(28) 
_{Jun}
(32) 
_{Jul}
(37) 
_{Aug}
(14) 
_{Sep}
(7) 
_{Oct}
(3) 
_{Nov}
(15) 
_{Dec}
(3) 
2009 
_{Jan}

_{Feb}
(6) 
_{Mar}
(7) 
_{Apr}

_{May}
(20) 
_{Jun}
(8) 
_{Jul}
(5) 
_{Aug}
(6) 
_{Sep}

_{Oct}
(45) 
_{Nov}
(8) 
_{Dec}
(20) 
2010 
_{Jan}
(3) 
_{Feb}
(1) 
_{Mar}
(12) 
_{Apr}

_{May}
(3) 
_{Jun}
(12) 
_{Jul}
(1) 
_{Aug}
(2) 
_{Sep}
(3) 
_{Oct}
(11) 
_{Nov}
(5) 
_{Dec}
(6) 
2011 
_{Jan}
(4) 
_{Feb}

_{Mar}

_{Apr}
(13) 
_{May}
(9) 
_{Jun}
(12) 
_{Jul}
(12) 
_{Aug}
(2) 
_{Sep}
(11) 
_{Oct}
(8) 
_{Nov}
(2) 
_{Dec}
(16) 
2012 
_{Jan}
(23) 
_{Feb}

_{Mar}

_{Apr}
(2) 
_{May}

_{Jun}

_{Jul}

_{Aug}

_{Sep}
(6) 
_{Oct}
(7) 
_{Nov}

_{Dec}
(3) 
2013 
_{Jan}
(1) 
_{Feb}

_{Mar}

_{Apr}
(2) 
_{May}
(7) 
_{Jun}
(6) 
_{Jul}
(2) 
_{Aug}
(12) 
_{Sep}

_{Oct}
(3) 
_{Nov}

_{Dec}
(3) 
2014 
_{Jan}

_{Feb}

_{Mar}

_{Apr}
(2) 
_{May}

_{Jun}

_{Jul}

_{Aug}

_{Sep}

_{Oct}

_{Nov}
(3) 
_{Dec}

2015 
_{Jan}

_{Feb}
(5) 
_{Mar}
(5) 
_{Apr}
(1) 
_{May}
(7) 
_{Jun}
(28) 
_{Jul}
(9) 
_{Aug}

_{Sep}

_{Oct}

_{Nov}

_{Dec}

S  M  T  W  T  F  S 






1

2

3

4
(1) 
5

6

7

8

9

10
(1) 
11
(3) 
12
(2) 
13

14

15

16

17

18

19

20

21

22
(1) 
23

24

25
(5) 
26

27
(1) 
28

29

30

31







From: Ken Starks <ken@la...>  20080825 18:28:35

Stefan Schenk wrote: > Hi Mico, > > Am Freitag 22 August 2008 20:36 schrieb Mico Filós: > [...] > >> Describing this in words is painful. I hope you see what I mean. >> > > I think i now understand the pain;) You want to achieve something like the > following? > > # > > from pyx import * > > g = graph.graphxy(width=8) > f = g.plot(graph.data.function("y(x)=sin(x)/x", min=10, max=10)) > > g.doplot(f) > > # The point that defines the tangent > l = 0.51*f.path.arclen() > x0, y0 = f.path.at(l) > > tangent = f.path.tangent(l, length=4) > g.stroke(tangent) > > # Path that is perpendicular to tangent > projector = tangent.transformed(trafo.rotate(90, x0, y0)) > > # Some other arbitrary point > l2 = 0.7*f.path.arclen() > x1, y1 = f.path.at(l2) > > # Find the intersection of a line from x1, y1 perpendicular to tangent with > # tangent > a, b = projector.transformed(trafo.translate(x1x0, > y1y0)).intersect(tangent) > u, v = tangent.at(b[0]) > > g.stroke(path.line(x1, y1, u, v)) > > > g.writeEPSfile("project_function_to_tangent") > > # > > > However there is still the problem that the points (x0, y0) and (x1, y1) > are determined by some length of the path. > > Does anyone know a way in pyx to translate some graphcoordinate x into a > pathlength? > > If not, you probably have to do tangent by hand and (x1, y1) will be > something like > x1, y1 = g.pos(x, y(x)) > >  > 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://moblincontest.org/redirect.php?banner_id=100&url=/ > _______________________________________________ > PyXuser mailing list > PyXuser@... > https://lists.sourceforge.net/lists/listinfo/pyxuser > > > There is a genuine problem here that would be useful to solve, in the context of involutes and evolutes, of constucting a curve as an envelope, and similar tasks. It is a task that should almost certainly be solved for parametric paths rather than graphs of functions, although they would be a special case. Another special case, that of applying unequal axisscaling, possibly not even linear, as here, is possible I suppose, but is quite likely to be silly. If you distort your geometry in this way, you should surely distort your ruler/tapemeasure and protractor to match. The idea of starting with such a pathological example as ("y(x)=sin(x)/x", min=10, max=10) is either tongueincheek, or a troll.  So let us start with the simpler (but not insubstantial) task: Same problem, but restricted to paths that consist of a single, nonselfintersecting cubic Bezier. Can this be solved analytically, and if not what is the most stable, accurate, and/or quickest numerical method that Python can provide ? I can't imagine that recursive chopping in half, followed by Pythagoras' theorem on all the bits is likely to be it. Cheers, Ken. 
From: Ken Starks <ken@la...>  20080825 18:27:06

Reply sent privately (in error) on 24 August Mico Filós wrote: > Hi, > > I am sorry if this is a trivial question but I cannot figure out how > to do this. > > Imagine I have a nonlinear function f(x) and its linearization at some > point (x0,f(x0)), > given by y(x) = f'(x0) (x  x0) + y0, where y0 = f(x0). Imagine also that > I don't use the same scale for the x and y axes. How can I obtain a > straight line that > *looks* perpendicular to the tangent y(x)? > > Since the x and y scales are not the same, a line with slope equal to > 1/f'(x0) > does not look perpendicular to y(x). I want to plot a straight line > that passes through > an arbitrary point of the tangent (not necessarily (x0,y0)) and that > looks perpendicular to > it. My idea is actually to plot the projection of an arbitrary point > of the nonlinear function, > (x1,f(x1)) to the subspace spanned by the tangent at x0. For me the > most straightforward thing to do would be: > > * Compute the angle theta (on the actual canvas, i.e., as it looks > on the screen) of the path > defined by the tangent function y(x) > > * Plot a line path L with an angle theta + pi/2 that passes through > some particular point > of the tangent Q=(x0', y0'), which I specify. > > * Find the intersection R of the line L with the path defined by > the nonlinear function. > > * Ideally, I would stroke only the portion of L that connects the > point > (x0',y0') with the intersection point R. > > Describing this in words is painful. I hope you see what I mean. > > Thanks a lot in for your patience. > > Mico > >  > 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://moblincontest.org/redirect.php?banner_id=100&url=/ > _______________________________________________ > PyXuser mailing list > PyXuser@... > https://lists.sourceforge.net/lists/listinfo/pyxuser > > >  from pyx import * g = graph.graphxy(width=8, x=graph.axis.linear(min=5, max=5)) g.plot(graph.data.function("y(x)=x*x")) # Let us plot the tangent at (x0,y0) = (2,4) slope 4 g.plot(graph.data.function("y(x)=4*(x1)")) """ Let us take two more points on the tangent """ slope=4 deltaX=2 x1=3 # example, you can change this x2 = x1 + deltaX y1 = slope * (x1 1) y2 = slope * (x2  1) """ Now you need to get the two points (x1,y1), (x2,y2) into canvascoordinates rather than scaled coordinates. This is the crucial stage that will provide for your peculiar request that the line *looks* perpendicular to the tangent line. I shall call these UV coordinates, and their origin is bottom left of the canvas (g), their units the usual userunits (e.g cm) """ u1,v1= g.pos(x1,y1) u2,v2= g.pos(x2,y2) deltaU=u2u1 deltaV=v2v1 # lastly a point (u3,v3) that can define your 'normal' from (u1,v1) u3=u1deltaV v3=v1+deltaU # as these are in canvas coordinates, not graph ones, we use # stroke .. path .. etc to plot a segment from u1,v1 to u3,v3 g.stroke(path.path(path.moveto(u1,v1),path.lineto(u3,v3))) g.writePDFfile("graph3") 
From: Ken Starks <ken@la...>  20080825 18:23:42

I am about to resend a couple of messages which I have just realised went only to an individual rather than to the mailinglist as a whole. It seems that this mailing list is set up so that the main 'To:' recipient when you press 'Reply' is the individual, and the list itself is 'Cc:', for which in my system you have to press 'Reply all'. Sorry about not noticing earlier. Ken. 
From: André Wobst <wobsta@us...>  20080825 17:36:12

Hi Stefan, Am 25.08.2008 um 10:57 schrieb Stefan Schenk: > Does anyone know a way in pyx to translate some graphcoordinate x > into a > pathlength? Didn't you pointed out that using path "arithmetics" would be a perfect solution to the problem. Well, here too! Just use a grid path from the axis: l = f.path.intersect(g.xgridpath(0.2))[0][0] Note that l will be a normpathparam instead of a simple length, but this is a feature ... and you can do funny things with those parameters (like adding an arc length to such a parameter). André  by _ _ _ Dr. André Wobst, Amselweg 22, 85716 Unterschleißheim / \ \ / ) wobsta@..., http://www.wobsta.de/ / _ \ \/\/ / PyX  High quality PostScript and PDF figures (_/ \_)_/\_/ with Python & TeX: visit http://pyx.sourceforge.net/ 
From: Stefan Schenk <Stefan.S<chenk@ph...>  20080825 08:58:07

Hi Mico, Am Freitag 22 August 2008 20:36 schrieb Mico Filós: [...] > Describing this in words is painful. I hope you see what I mean. I think i now understand the pain;) You want to achieve something like the following? # from pyx import * g = graph.graphxy(width=8) f = g.plot(graph.data.function("y(x)=sin(x)/x", min=10, max=10)) g.doplot(f) # The point that defines the tangent l = 0.51*f.path.arclen() x0, y0 = f.path.at(l) tangent = f.path.tangent(l, length=4) g.stroke(tangent) # Path that is perpendicular to tangent projector = tangent.transformed(trafo.rotate(90, x0, y0)) # Some other arbitrary point l2 = 0.7*f.path.arclen() x1, y1 = f.path.at(l2) # Find the intersection of a line from x1, y1 perpendicular to tangent with # tangent a, b = projector.transformed(trafo.translate(x1x0, y1y0)).intersect(tangent) u, v = tangent.at(b[0]) g.stroke(path.line(x1, y1, u, v)) g.writeEPSfile("project_function_to_tangent") # However there is still the problem that the points (x0, y0) and (x1, y1) are determined by some length of the path. Does anyone know a way in pyx to translate some graphcoordinate x into a pathlength? If not, you probably have to do tangent by hand and (x1, y1) will be something like x1, y1 = g.pos(x, y(x)) 