Draw a capsule.
drawCapsule(CAP)
Draws the capsule CAP on the current axis.
CAP is a 1-by-7 row vector in the form [x1 y1 z1 x2 y2 z2 r] where:
* [x1 y1 z1] are the coordinates of starting point,
* [x2 y2 z2] are the coordinates of ending point,
* R is the radius of the cylinder and the two semi-spheres at the ends
drawCapsule(CAP, N)
Uses N points for discretizating the circles of the cylinder and the
semi-spheres (domes). Default value is 32.
drawCapsule(..., 'FaceColor', COLOR)
Specifies the color of the capsule. Any couple of parameters name and
value can be given as argument, and will be transfered to the 'surf'
matlab function
drawCapsule(..., 'FaceAlpha', ALPHA)
Specifies the transparency of the capsule and of the semi-spheres.
drawCapsule(..., NAME, VALUE);
Specifies one or several options using parameter name-value pairs.
Available options are usual drawing options, as well as:
'nPhi' the number of arcs used for drawing the meridians
(for the semi-spheres and the cylinder(
'nTheta' the number of circles used for drawing the parallels
(only for the semi-spheres at the ends of the capsule)
drawCapsule(AX, ...)
Specifies the axis to draw on. AX should be a valid axis handle.
H = drawCapsule(...)
Returns a handle to the patch representing the capsule.
Examples:
% basic example
figure; drawCapsule([0 0 0 10 20 30 5]);
% change capsule color
figure; drawCapsule([0 0 0 10 20 30 5], 'FaceColor', 'r');
% change capsule color using graphical handle
figure;
h = drawCapsule([0 0 0 10 20 30 5]);
set(h, 'facecolor', 'b');
% Draw three mutually intersecting capsules
p0 = [10 10 10];
p1 = p0 + 80 * [1 0 0];
p2 = p0 + 80 * [0 1 0];
p3 = p0 + 80 * [0 0 1];
figure; axis equal; axis([0 100 0 100 0 100]); hold on
drawCapsule([p0 p1 10], 'FaceColor', 'r');
drawCapsule([p0 p2 10], 'FaceColor', 'g');
drawCapsule([p0 p3 10], 'FaceColor', 'b');
axis equal
set(gcf, 'renderer', 'opengl')
view([60 30]); light;
% draw cube skeleton
[v, e, f] = createCube;
figure; axis equal; axis([-0.2 1.2 -0.2 1.2 -0.2 1.2]); hold on; view(3);
caps = [v(e(:,1), :) v(e(:,2),:) repmat(0.1, size(e, 1), 1)];
drawCapsule(caps);
light
% Draw a capsule with high resolution
figure;
h = drawCapsule([10,20,10,50,70,40,6], 'nPhi', 360, 'nTheta', 180);
l = light; view(3);
See Also:
crawCylinder, drawDome, drawSphere
Package: matgeom