move translate to take vec2d as arg

Mostly just looking at some small issues while I get used to Rust. This solves #670 (which is draft so may or may not be desired anyway).

Feel free to throw it out : ). Will do the other similar tickets later most likely.