How to generate a torus in MATLAB ?
In geometry, a torus (plural tori) is a surface of revolution generated by revolving a circle in three-dimensional space about an axis coplanar with the circle. If the axis of revolution does not touch the circle, the surface has a ring shape and is called a torus of revolution.
MATLAB Program:
Output:
MATLAB Program:
function [xx,yy,zz] = torus(r,n,a)
%TORUS Generate a torus
% torus(r,n,a) generates a plot of a torus
with central
% radius
a and lateral radius r. n controls the number
% of facets on the surface. These input variables are optional
% with defaults r = 0.5, n = 20, a = 1.
%
% [x,y,z] = torus(r,n,a) generates three
(n+1)-by-(2n+1)
% matrices so that surf(x,y,z) will produce
the torus.
if nargin < 3, a = 1; end
if nargin < 2, n = 20; end
if nargin < 1, r = 0.5; end
theta = pi*(0:2*n)/n;
phi = 2*pi*(0:n)'/n;
x = (a + r*cos(phi))*cos(theta);
y = (a + r*cos(phi))*sin(theta);
z = r*sin(phi)*ones(size(theta));
if nargout == 0
surf(x,y,z)
ar = (a + r)/sqrt(2);
axis([-ar,ar,-ar,ar,-ar,ar])
else
xx = x; yy = y; zz = z;
end
Output:
No comments