# -------------------------------------------------------------------
# ---- function: draw X,Y axes with tick marks
# -------------------------------------------------------------------
from graphics import *
def draw_xy_axes(win,tickmarks,linewidth=1,linecolor="black"):
wx = win.width # window width
wy = win.height # window height
wcx = int(round(wx/2.0)) # window center X
wcy = int(round(wy/2.0)) # window center Y
# ---- X axis
xl = Line(Point(0,wcy),Point(wx-1,wcy))
xl.setWidth(linewidth)
xl.setFill(linecolor)
xl.draw(win)
# ---- Y axis
yl = Line(Point(wcx,0),Point(wcx,wy-1))
yl.setWidth(linewidth)
yl.setFill(linecolor)
yl.draw(win)
# ---- tick marks?
if not tickmarks:
return
x1 = wcx # X axis center
x2 = wcx # X axis center
y1 = wcy # Y axis center
y2 = wcy # Y axis center
xt1 = wcy - 5 # X axis tick start
xt2 = wcy + 6 # x axis tick end
yt1 = wcx - 5 # y axis tick start
yt2 = wcx + 6 # Y axis tick end
for _ in range(7):
x1 += 50
t = Line(Point(x1,xt1),Point(x1,xt2))
t.setWidth(linewidth)
t.setFill(linecolor)
t.draw(win)
x2 -= 50
t = Line(Point(x2,xt1),Point(x2,xt2))
t.setWidth(linewidth)
t.setFill(linecolor)
t.draw(win)
y1 += 50
t = Line(Point(xt1,y1),Point(xt2,y1))
t.setWidth(linewidth)
t.setFill(linecolor)
t.draw(win)
y2 -= 50
t = Line(Point(xt1,y2),Point(xt2,y2))
t.setWidth(linewidth)
t.setFill(linecolor)
t.draw(win)
return