Implicit surface plot of a finite cylinder
Show older comments
Using fimplicit3, I can plot an infinite cylinder, like so:
args={'EdgeColor','none','FaceColor','c','FaceAlpha',0.3};
fimplicit3(@(x,y,z) x.^2+y.^2-1, args{:} ); axis([-3,+3,-3,+3,-3,+3])
However, what I would really like is for the cylinder to be of finite length, say 4. My first idea for how to do this was the following. This does produce a finite cylinder of the correct length, but it is closed at both ends, which I do not want.
fimplicit3(@(x,y,z) x.^2+y.^2-1 + (abs(z)>2), args{:} ); axis([-3,+3,-3,+3,-3,+3])
I believe I know why this is happening. There is a discontinuous jump from negative values to 1 at the end caps, and so the fimplicit3 algorithm assumes there are roots there. However, I wonder if there is a way to trick fimplicit3 somehow so that I get a cylinder with open ends. Any ideas?
Accepted Answer
More Answers (0)
Categories
Find more on Line Plots in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!

