def hilbert(ORDER, norm=True, offset=0.5): # argument: order=1, 2, 3 ... n, offset=(x:0.5, y:0.5) N = 2**ORDER # the number of rows or columns P = zeros((2, N * N)) # prepare an array for (X, Y) coodinates output for i in range(N * N): U = array([[0, 0], [0, 1], [1, 1], [1, 0]]) # four points under ORDER=1 V = array([offset, offset]) # offset: starting point for j in reversed(range(ORDER)): # ORDE