generalize spike to arbitrary angles