El tutorial o código que hallarás en este post es la resolución más fácil y válida que hallamos a esta duda o problema.
Solución:
Su fórmula es absolutamente correcta, solo busque aquí para verificar.
Un círculo de radio $a$ con centro en $(b,0)$ en el plano $xz$ tiene la ecuación paramétrica
$$x=acos(theta)+b,z=asin(theta),$$ con $theta$ en el rango $[0,2pi]$ para un círculo completo.
Ahora rotas el plano $xz$ alrededor de $z$ por $xleftarrow xcos(phi),yleftarrow xsin(phi)$, con $phi$ en el rango $[0,2pi]$ por una vuelta completa,
$$x=(acos(theta)+b)cos(phi),\ y=(acos(theta)+b)sin(phi),\ z=a sin(theta).$$
Si congelas $theta$, obtienes un círculo en un plano paralelo a $xy$, de la forma:
$$x=rcos(phi),y=rsin(phi).$$
Puede trazar esta superficie en WolframAlpha. La sintaxis correcta a utilizar es:
ParametricPlot3D[(2 Cos[u]+3) Cos[v], (2 Cos[u]+3) Sin[v], 2 Sin[u], u, 0, 2 Pi, v, 0, 2 Pi]
donde he elegido $a = 2$, $b = 3$. La salida se ve así.