def rotate_by(obj, angle): vecs = vecs_from_coords(_canvas.coords(obj)) anchorPos = Vec2d.getAverage(vecs) newVecs = [] for vec in vecs: vec -= anchorPos vec.rotate(angle) vec += anchorPos newVecs.append(vec) newCoords = coords_from_vecs(newVecs) _canvas.coords(obj, *newCoords)