def generate_cylindrical_points(start, end, start_radius, end_radius,<EOL>linspace_count=_LINSPACE_COUNT):
v = end - start<EOL>length = norm(v)<EOL>v = v / length<EOL>n1, n2 = _get_normals(v)<EOL>l, theta = np.meshgrid(np.linspace(<NUM_LIT:0>, length, linspace_count),<EOL>np.linspace(<NUM_LIT:0>, <NUM_LIT:2> * np.pi, linspace_count))<EOL>radii = np.linspace(start_radius, end_radius, linspace_count)<EOL>rsin = np.multiply(radii, np.sin(theta))<EOL>rcos = np.multiply(radii, np.cos(theta))<EOL>return np.array([start[i] +<EOL>v[i] * l +<EOL>n1[i] * rsin + n2[i] * rcos<EOL>for i in range(<NUM_LIT:3>)])<EOL>
Generate a 3d mesh of a cylinder with start and end points, and varying radius

    Based on: http://stackoverflow.com/a/32383775