doesn't have the assumption that 0 and 1 are x and y axes respectively