REVOLUTIONSURFACE Create a surface of revolution from a planar curve. usage [X Y Z] = revolutionSurface(C1, C2, N); create the surface of revolution of parametrized function (xt, yt), with N+1 equally spaced slices, around the Oz axis. It assumed that C1 corresponds to the x coordinate, and that C2 corresponds to the Oz coordinate. [X Y Z] = revolutionSurface(CURVE, N); is the same, but generating curve is given in a single parameter CURVE, which is a [Nx2] array of 2D points. [X Y Z] = revolutionSurface(..., THETA) where THETA is a vector, uses values of THETA for computing revolution angles. [X Y Z] = revolutionSurface(..., LINE); where LINE is a 1x4 array, specifes the revolution axis in the coordinate system of the curve. LINE is a row vector of 4 parameters, containing [x0 y0 dx dy], where (x0,y0) is the origin of the line and (dx,dy) is a direction vector of the line. The resulting revolution surface still has Oz axis as symmetry axis. It can be transformed using transformPoint3d function. Surface can be displayed using : H = surf(X, Y, Z); H is a handle to the created patch. revolutionSurface(...); by itself, directly shows the created patch. Example % draws a piece of torus circle = circleAsPolygon([10 0 3], 50); [x y z] = revolutionSurface(circle, linspace(0, 4*pi/3, 50)); surf(x, y, z); axis equal; See also surf, transformPoint3d, drawSphere, drawTorus, drawEllipsoid surfature (on Matlab File Exchange) ------ Author: David Legland e-mail: david.legland@grignon.inra.fr Created: 2004-04-09 Copyright 2005 INRA - CEPIA Nantes - MIAJ Jouy-en-Josas.
Package: matgeom