File Exchange

image thumbnail


version 1.0 (2.21 KB) by

This function will construct a 3d cylinder connecting two points (centers)



View License

This function constructs a cylinder connecting two center points

Usage :
[Cylinder EndPlate1 EndPlate2] = Cylinder(X1+20,X2,r,n,'r',closed,lines)
Cylinder-------Handle of the cylinder
EndPlate1------Handle of the Starting End plate
EndPlate2------Handle of the Ending End plate
X1 and X2 are the 3x1 vectors of the two points
r is the radius of the cylinder
n is the no. of elements on the cylinder circumference (more--> refined)
cyl_color is the color definition like 'r','b',[0.52 0.52 0.52]
closed=1 for closed cylinder or 0 for hollow open cylinder
lines=1 for displaying the line segments on the cylinder 0 for only

Typical Inputs
X1=[10 10 10];
X2=[35 20 40];

NOTE: There is a MATLAB function "cylinder" to revolve a curve about an
axis. This "Cylinder" provides more customization like direction and etc

Comments and Ratings (6)


Thales (view profile)


karl marx

Its very useful to me and all.

Germain Aoun

Nice work ! Error corrected and no glitches here !
Is there a way to detect whether a point (X;Y;Z) belongs (is inside) to the volume delimited by a cylinder generated by your function ?

Charles Warren

I get inconsistent results depending on whether I set closed. I think the translation code for the endcaps (lines 82-90) away from the origin, the offsets are wrong (cut and paste typos probably). Line 83 should end with +X1(1); line 85 should end with +X1(3); line 87 should end with +X1(1); line 89 should end with +X1(3). When I make those changes, I get consistent plots for closed=0,1.

MATLAB Release
MATLAB 7.0.1 (R14SP1)

Inspired: Cone

Download apps, toolboxes, and other File Exchange content using Add-On Explorer in MATLAB.

» Watch video