%CLOSEDCYLINDER Closed Cylinder % Generates a cylinder bewteen pt1 and pt2 % % Syntax: [X, Y, Z] = closedCylinder(pt1, pt2, radius) % % Inputs: % pt1 - start point of cylinder % pt2 - end point of cylinder % radius - cylinder radius % % Outputs: % [X, Y, Z] - matrices defining a parametric surface % % Other m-files required: transSurf.m, trans.m, roty.m, rotz.m % % See also: TRANSSURF % Author: Travis Hydzik % Last revision: 19 October 2004 function [X, Y, Z] = closedCylinder(pt1, pt2, radius) v = pt2 - pt1; [theta,phi,R] = cart2sph(v(1), v(2), v(3)); radius = [0 radius radius 0]; [X,Y,Z] = cylinder(radius, 20); % first and last rows respectively to give squared ends rows = size(Z,1); Z(2,:) = Z(1,:); Z(rows-1,:) = Z(rows,:); Z = Z * R; % scale to length T = trans(pt1(1), pt1(2), pt1(3))*rotz(theta)*roty(pi/2 - phi); [X, Y, Z] = transSurf(T,X,Y,Z);