Thnaks Will.
you gave me precious hints.
I was pretty sure that there was a way to wrap up pyx code to satisfy
my needs.
I see that in any case the idea is to subclass a canvas.
Best
-a-
On 22 Sep 2006, at 05:14, William Henney wrote:
> Andrea,
>
> On 9/21/06, andrea valle <[EMAIL PROTECTED]> wrote:
>> So, I try to make an example.
>> I'm developing graphical musical notation.
>> I need a finite set of symbols, each one having its properties. eg. a
>> red circle in a white rect represents something, a red circle alone
>> represents something other, a blue cross a third thing, a little blue
>> cross a fourth one and so on.
>
> Sorry to butt in here, but I think that what you want is quite easy.
> You don't really have to worry about the design of PyX - just wrap it
> up so it has the design you want! Is the example below anything like
> what you are after? Note that in my example a symbol has "fixed
> properties", such as shape and fill color, that are set when the
> symbol is first defined. These could be extended to include stroke
> color, linewidth, etc. Then there are "temporary properties" - size,
> position, angle, that can be different each time the symbol is
> "painted"
>
> Cheers
>
> Will
>
> #######################################################################
> ###
> import pyx
>
> class Shape:
> "Paths for simple shapes of unit size"
> circle = pyx.path.circle(0, 0, 0.5)
> square = pyx.path.rect(-0.5, -0.5, 1, 1)
>
> class Color:
> black = pyx.color.rgb.black
> blue = pyx.color.rgb(0.1,0.2,0.8)
> pink = pyx.color.rgb(0.9,0.5,0.5)
>
> class Symbol(pyx.canvas.canvas):
> "A symbol with properties"
> def __init__(self, fillcolor=Color.black, alpha=0.5,
> path=Shape.circle):
> pyx.canvas.canvas.__init__(self)
> self.fill(path, [fillcolor, pyx.color.transparency(1.-alpha)])
>
> def paint(self, c, pos=(0, 0), size=1, angle=0):
> c.insert(self, [pyx.trafo.translate(*pos),
> pyx.trafo.scale(size),
> pyx.trafo.rotate(angle)])
>
> picture = pyx.canvas.canvas()
>
> bluecircle = Symbol(fillcolor=Color.blue)
> pinksquare = Symbol(fillcolor=Color.pink, path=Shape.square)
>
> bluecircle.paint(picture)
> bluecircle.paint(picture, pos=(1, 1), size=2.5)
> pinksquare.paint(picture, pos=(0, 1), size=1.5, angle=30)
>
> picture.writePDFfile("paint")
> #######################################################################
> ###
>
>
> --
>
> Dr William Henney, Centro de Radioastronomía y Astrofísica,
> Universidad Nacional Autónoma de México, Campus Morelia
>
>
Andrea Valle
DAMS - Facoltà di Scienze della Formazione
Università degli Studi di Torino
http://www.semiotiche.it/andrea
[EMAIL PROTECTED]
-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT & business topics through brief surveys -- and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
_______________________________________________
PyX-user mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/pyx-user