import numpy as np import matplotlib.pyplot as plt def getSquareY(x): if x==-1 or x == 1: return 0 else: return 1 getSquareYVectorised = np.vectorize(getSquareY) def getCircle(x): return np.sqrt(1-np.square(x)) def transform(x,y,t): points = np.array([x,y]) result = t @ points return result[0,:], result[1,:] def plotGridLines(xlim,ylim,t): for i in range(xlim[0]-20,xlim[1]+21): x = [i,i] y = [ylim[0]-20,ylim[1]+20] x,y = transform(x,y,t) plt.plot(x,y, color='#DAD5D4',linestyle='dashed',linewidth=0.5) for i in range(ylim[0]-20,ylim[1]+21): y = [i,i] x = [xlim[0]-20,xlim[1]+20] x,y = transform(x,y,t) plt.plot(x,y, color='#DAD5D4',linestyle='dashed',linewidth=0.5)