
import sys
import math
sys.path.append("../../../scidocxml/draw/pydraw")
import pyDraw as draw
d = draw.Draw({'name':'figureA','width':300,'height':300,'medium-font-size':'16'})
s=draw.Scale({'sx':300,'sy':300})
t=draw.Translate({'tx':0.05,'ty':0.05})
nx=5
ny=5
dx=0.9/(nx-1)
dy=0.9/(ny-1)
for i in range(nx):
    t.add(draw.Line({'x1':i*dx,'y1':0,'x2':i*dx,'y2':0.9,'stroke':'grey','fill':'none'}))
for j in range(ny):
    t.add(draw.Line({'x1':0,'y1':j*dy,'x2':0.9,'y2':j*dy,'stroke':'grey','fill':'none'}))
def point(i,j,anchor,text):
    x = i*dx
    y = j*dy
    t.add(draw.Circle({'cx':x,'cy':y,'r':0.005,'stroke':'red','fill':'red'}))
    t.add(draw.Text({'x':x,'y':y,'a':anchor,'fill':'black','stroke':'black','font-size':'medium'},text))
def sommet(i,j,anchor,text,stroke):
    x = i*dx
    y = j*dy
    t.add(draw.Circle({'cx':x,'cy':y,'r':0.002,'stroke':stroke,'fill':stroke}))
    t.add(draw.Text({'x':x,'y':y,'a':anchor,'fill':stroke,'stroke':stroke,'font-size':'x-small'},text))
def text(i,j,anchor,text,stroke):
    x=i*dx
    y=j*dy
    t.add(draw.Text({'x':x,'y':y,'a':anchor,'fill':stroke,'stroke':stroke,'font-size':'x-small'},text))
def frontiere(points,stroke,dash):
    n = len(points)
    for k in range(n):
        x1 = points[k][0]*dx
        y1 = points[k][1]*dy
        if k < n-1:
            x2 = points[k+1][0]*dx
            y2 = points[k+1][1]*dy
        else:
            x2 = points[0][0]*dx
            y2 = points[0][1]*dy
        t.add(draw.Line({'x1':x1,'y1':y1,'x2':x2,'y2':y2,'stroke':stroke,'fill':'none','stroke-dasharray':dash}))
i=2
j=2
point(i,j,'l','i,j')
text(i,j,'r','A','red')
point(i-1,j,'r','i-1,j')
point(i+1,j,'l','i+1,j')
point(i,j+1,'b','i,j+1')
point(i,j-1,'t','i,j-1')
sommet(i+0.5,j+0.5,'bl','a','blue')
sommet(i-0.5,j+0.5,'br','b','blue')
sommet(i-0.5,j-0.5,'tr','c','blue')
sommet(i+0.5,j-0.5,'tl','d','blue')
dash = '2,2'
frontiere([[i+0.5,j+0.5],[i-0.5,j+0.5],[i-0.5,j-0.5],[i+0.5,j-0.5]],'blue',dash)
s.add(t)
d.add(s)
            

d = draw.Draw({'name':'figureB','width':300,'height':350,'medium-font-size':'16'})
s=draw.Scale({'sx':300,'sy':300})
t=draw.Translate({'tx':0.05,'ty':0.05})
nx=5
ny=5
dx=0.9/(nx-1)
dy=0.9/(ny-1)
for i in range(nx):
    t.add(draw.Line({'x1':i*dx,'y1':0,'x2':i*dx,'y2':0.9,'stroke':'grey','fill':'none'}))
for j in range(ny):
    t.add(draw.Line({'x1':0,'y1':j*dy,'x2':0.9,'y2':j*dy,'stroke':'grey','fill':'none'}))
i=2
j=ny-1
point(i,j,'b','i,j')
text(i,j,'t','C','red')
point(i-1,j,'r','i-1,j')
point(i+1,j,'l','i+1,j')
point(i,j-1,'t','i,j-1')
sommet(i+0.5,j+0.1,'bl','k','blue')
sommet(i-0.5,j+0.1,'br','l','blue')
sommet(i-0.5,j-0.5,'tr','m','blue')
sommet(i+0.5,j-0.5,'tl','n','blue')
dash = '2,2'
frontiere([[i+0.5,j+0.1],[i-0.5,j+0.1],[i-0.5,j-0.5],[i+0.5,j-0.5]],'blue',dash)

s.add(t)
d.add(s)
                

d = draw.Draw({'name':'figureC','width':300,'height':350,'medium-font-size':'16'})
s=draw.Scale({'sx':300,'sy':300})
t=draw.Translate({'tx':0.05,'ty':0.05})
nx=5
ny=5
dx=0.9/(nx-1)
dy=0.9/(ny-1)
for i in range(nx):
    t.add(draw.Line({'x1':i*dx,'y1':0,'x2':i*dx,'y2':0.9,'stroke':'grey','fill':'none'}))
for j in range(ny):
    t.add(draw.Line({'x1':0,'y1':j*dy,'x2':0.9,'y2':j*dy,'stroke':'grey','fill':'none'}))
i=0
j=ny-1
point(i,j,'b','i,j')
text(i,j,'tl','E','red')
point(i+1,j,'l','i+1,j')
point(i,j-1,'t','i,j-1')
sommet(i+0.5,j+0.1,'bl','s','blue')
sommet(i-0.1,j+0.1,'br','t','blue')
sommet(i-0.1,j-0.5,'tr','u','blue')
sommet(i+0.5,j-0.5,'tl','v','blue')
dash = '2,2'
frontiere([[i+0.5,j+0.1],[i-0.1,j+0.1],[i-0.1,j-0.5],[i+0.5,j-0.5]],'blue',dash)
s.add(t)
d.add(s)
                
