HI  André,

Thanks for the fixes,  they worked like a charm.




On 26/03/2020 06:02, André Wobst wrote:
> Hi Frederico,
>
> the methods with _pt at the end, use coordinates in postscript points,
> whereas without _pt PyX uses PyX lengths. Those can be configured by
> the unit module. PyX lengths default to cm, but you might reconfigure
> it to mm to match your expectation.
>
> Please find this correction (to mm) together with a few other small
> fixes below. To my mind it now basically runs as you probably expect it.
>
> Best,
>
>
> André
>
> ------
> import mpy as np
> import math
> from pyx import *
>
> unit.set(defaultunit='mm')
>
> def vector(x1, y1, x2, y2, t, pos=0.5, distance=0.1):
>     c = canvas.canvas()
>     sz=1
>     tg_s = (y2-y1)  / (x2-x1)
>     theta =  math.atan(tg_s)
>     dx = sz * math.cos( theta )
>     dy = sz * math.sin( theta )
>     #
>     c.stroke(path.line(x1, y1, x2-dx, y2-dy),
>                 [style.linewidth(sz), color.rgb.black,
>                 deco.earrow([deco.stroked([color.rgb.black])],
> size=sz)] )
>     c.text( x2+10,  y2+10, t,   [text.halign.boxcenter] )
>     # c.insert(textbox)
>     return c
>
> rect1 = path.path(path.moveto(0, 0), path.lineto(1, 0),
>                   path.moveto(1, 0), path.lineto(1, 1),
>                   path.moveto(1, 1), path.lineto(0, 1),
>                   path.moveto(0, 1), path.lineto(0, 0))
> rect2 = path.path(path.moveto(2, 0), path.lineto(3, 0),
>                   path.lineto(3, 1), path.lineto(2, 1),
>                   path.lineto(2, 0))
> rect3 = path.path(path.moveto(4, 0), path.lineto(5, 0),
>                   path.lineto(5, 1), path.lineto(4, 1) )
> #                  path.closepath())
>
> pt=path.path()
> c = canvas.canvas()
>
> nlin = 30
> mult = 10
> lmax = nlin * mult
> for ls in range( nlin  ) :
>     # pt = path.path( path.moveto(1,ls) , path.lineto(255,ls) ,
> path.closepath()  )
>     pt = path.path(path.moveto(0, ls*mult), path.lineto(lmax,ls*mult),
>                     path.moveto(ls*mult, 0), path.lineto(ls*mult,lmax) )
>     c.stroke( pt  ,  [style.linewidth.Thin]  )
>     c.text( ls*mult ,  0 , str( ls ) )
>
>
> #for ls in range( nlin  ) :
> #   c.text( ls*mult ,  0 ,  ls ,  [text.halign.boxcenter ])
> for I in range( 1 ,  7 ) :
>     c.insert( vector( 3 * mult , 1 * mult ,  5 * mult , I * mult ,
>  "$\\vec{v}$=(5, " +  str(I) + ")"   )  )
>
> #vt0 = path.path( path.moveto( vtorigx * mult ,  vtorigy * mult ) ,
> #                            path.lineto( (vtx + vtorigx) * mult , 
> (vty + vtorigy)*mult  ) )
> #c.stroke( vt0  ,  [ style.linewidth.THICK ,  deco.earrow.normal ]  )
> #c.stroke( pt  ,  [style.linewidth.THICK]  )
> #c.stroke(rect1, [style.linewidth.THICK])
> #c.stroke(rect2, [style.linewidth.THICK])
> #c.stroke(rect3, [style.linewidth.THICK])
>
> #c.writeEPSfile("pathitem")
> #c.writePDFfile("pathitem")
>
> c.writePDFfile("pathitem")
> quit()
>
>
> ------
>
> Am 26.03.20 um 00:22 schrieb Frederico C Wilhelms:
>> Howdy,
>>
>>
>> I'm trying PyX for the first time, and looking to adapt examples to my
>> need,
>>
>> but after some effort, couldn't get the text to appear on the canvas.
>>
>>
>> Thought it would write the text somewhere near the drawn vectors. .. but
>> it hasn't  text anywhere.
>>
>>
>> Would appreciate some help here.
>>
>>
>> Thanks in advance.,
>>
>> Frederico C Wilhelms
>>
>>
>>
>> By the way.,  Debian , 64 bits , Python Python 3.7.3
>>   , Pyx 0.15 ., installed by pip3 .,
>>
>>
>> *******
>>
>>
>>
>> mpy as np
>> import math
>> from pyx import *
>>
>>
>>
>> def vector(x1, y1, x2, y2, t, pos=0.5, distance=0.1):
>>      c = canvas.canvas()
>>      sz=1
>>      tg_s = (y2-y1)  / (x2-x1)
>>      theta =  math.atan(tg_s)
>>      dx = sz * math.cos( theta )
>>      dy = sz * math.sin( theta )
>>      #
>>      c.stroke(path.line(x1, y1, x2-dx, y2-dy),
>>                  [style.linewidth(sz), color.rgb.black,
>>                  deco.earrow([deco.stroked([color.rgb.black])],
>> size=sz)] )
>>      c.text_pt( x2+10,  y2+10, t,   [text.halign.boxcenter] )
>>      # c.insert(textbox)
>>      return c
>>
>> rect1 = path.path(path.moveto(0, 0), path.lineto(1, 0),
>>                    path.moveto(1, 0), path.lineto(1, 1),
>>                    path.moveto(1, 1), path.lineto(0, 1),
>>                    path.moveto(0, 1), path.lineto(0, 0))
>> rect2 = path.path(path.moveto(2, 0), path.lineto(3, 0),
>>                    path.lineto(3, 1), path.lineto(2, 1),
>>                    path.lineto(2, 0))
>> rect3 = path.path(path.moveto(4, 0), path.lineto(5, 0),
>>                    path.lineto(5, 1), path.lineto(4, 1) )
>> #                  path.closepath())
>>
>> pt=path.path()
>> c = canvas.canvas()
>>
>> nlin = 30
>> mult = 10
>> lmax = nlin * mult
>> for ls in range( nlin  ) :
>>      # pt = path.path( path.moveto(1,ls) , path.lineto(255,ls) ,
>> path.closepath()  )
>>      pt = path.path(path.moveto(0, ls*mult), path.lineto(lmax,ls*mult),
>>                      path.moveto(ls*mult, 0),
>> path.lineto(ls*mult,lmax) )
>>      c.stroke( pt  ,  [style.linewidth.Thin]  )
>>      c.text( ls*mult ,  0 , str( ls ) )
>>
>>    #for ls in range( nlin  ) :
>> #   c.text( ls*mult ,  0 ,  ls ,  [text.halign.boxcenter ])
>> for I in range( 1 ,  7 ) :
>>      c.insert( vector( 3 * mult , 1 * mult ,  5 * mult , I * mult ,
>> repr( "$\vec{v}$=(5, " +  str(I) + ")"  )  )  )
>>
>> #vt0 = path.path( path.moveto( vtorigx * mult ,  vtorigy * mult ) ,
>> #                            path.lineto( (vtx + vtorigx) * mult ,  (vty
>> + vtorigy)*mult  ) )
>> #c.stroke( vt0  ,  [ style.linewidth.THICK ,  deco.earrow.normal ]  )
>> #c.stroke( pt  ,  [style.linewidth.THICK]  )
>> #c.stroke(rect1, [style.linewidth.THICK])
>> #c.stroke(rect2, [style.linewidth.THICK])
>> #c.stroke(rect3, [style.linewidth.THICK])
>>
>> #c.writeEPSfile("pathitem")
>> #c.writePDFfile("pathitem")
>>
>> c.writePDFfile("pathitem")
>> quit()
>>
>>
>>
>>
>>
>>
>> _______________________________________________
>> PyX-user mailing list
>> [email protected]
>> https://lists.sourceforge.net/lists/listinfo/pyx-user
>>
>

Attachment: 0xE87591AED5DC4FB0.asc
Description: application/pgp-keys

_______________________________________________
PyX-user mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/pyx-user

Reply via email to