Not really the solution you expected, but not far and surely could be tweeked.
Could be interesting if you rotate the vector