torus.m

clf
fi=0:0.3:2*pi+0.3;
[F,P]=meshgrid(fi,fi);
X=cos(F).*(3+cos(P));
Y=sin(F).*(2+cos(P));
Z=sin(P);
mesh(Y,X,Z);
axis equal

Volymen är V=pi^2*a^2*(b+c).
Arean:

areafunk.m

function out=areafunk(phi,theta)
out=sqrt((2+cos(theta)+sin(phi).^2).^2+cos(theta).^2.*cos(phi).^2.*sin(phi).^2);

area.m

dblquad('areafunk',0,2*pi,0,2*pi)

tube.m

clf
a=0.05;b=1;c=0.2;
s=sqrt(b^2+c^2);
t=linspace(0,4*pi);
th=linspace(0,2*pi,10);
[T,Th]=meshgrid(t,th);
x=b*cos(T)-a*cos(Th).*cos(T)+a*sin(Th)*(c/s).*sin(T);
y=b*sin(T)-a*cos(Th).*sin(T)-a*sin(Th)*(c/s).*cos(T);
z=c*T+a*sin(Th)*b/s;
mesh(x,y,z)