Hello Gary,

On 26.02.06, Gary wrote:
> Consider the script below.  I expected the second line, the one to 
> x1,y1, to hit the circle due west of center.  When I run the script, the 
> end of the line is far above the circle.
> 
> What am I misunderstanding?
> 
> Also, let me know if there is a more elegant syntax.
> 
> thanks,
> -gary
> 
> -------------------------------------------------------------------
> from pyx import *
> from math import pi
> 
> c = canvas.canvas()
> 
> circle = path.circle(2,2,.2)
> 
> x,  y  = circle.at(0.)
> x1, y1 = circle.at(pi)

The circle is a general path at this point, thus not parameterised by
an angle but by either the arclength or by the generic parameters of
the Bezier curves it consists of.

What happened, is that the "arclength" 3.1415 you inserted above, is
bigger than the total arclength of 1.25 of the circle. Therefore, you
get a point that is extrapolated from the very last path element the
circle consists of (This is probably a short closing line)

This is what you wanted:
x,  y  = circle.at(0.)
x1, y1 = circle.at(0.5*circle.arclen())
because the standard parameterisation is in arclength.

> c.stroke(path.path(path.moveto(0,0), path.lineto(x, y)))
> c.stroke(path.path(path.moveto(0,0), path.lineto(x1, y1)))
> c.stroke(circle)
> 
> c.writeEPSfile("test")
> 

Best,
 Michael.

-- 
"A mathematician is a device for turning coffee into theorems"
  Paul Erdös.


-------------------------------------------------------
This SF.Net email is sponsored by xPML, a groundbreaking scripting language
that extends applications into web and mobile media. Attend the live webcast
and join the prime developer group breaking into this new coding territory!
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=110944&bid=241720&dat=121642
_______________________________________________
PyX-user mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/pyx-user

Reply via email to