Home > matGeom > geom3d > drawPoint3d.m

drawPoint3d

PURPOSE ^

DRAWPOINT3D Draw 3D point on the current axis.

SYNOPSIS ^

function h = drawPoint3d(varargin)

DESCRIPTION ^

DRAWPOINT3D Draw 3D point on the current axis.

   drawPoint3d(X, Y, Z) 
   will draw points defined by coordinates X, Y and Z. 
   X, Y and Z are N*1 array, with N being number of points to be drawn.
   
   drawPoint3d(COORD) packs coordinates in a single [N*3] array.

   drawPoint3d(..., OPT) will draw each point with given option. OPT is a 
   string compatible with 'plot' model.

   drawPoint3d(AX,...) plots into AX instead of GCA.

   H = drawPoint3d(...) returns a handle H to the line object

   Example
     % generate points on a 3D circle
     pts = circleToPolygon([40 30 20], 120);
     mat = eulerAnglesToRotation3d([30 20 10]);
     pts3d = transformPoint3d([pts zeros(120,1)],mat);
     figure; drawPoint3d(pts3d, 'b.');
     view(3); axis equal;

   See also
     points3d, clipPoints3d, drawPoint

CROSS-REFERENCE INFORMATION ^

This function calls: This function is called by:

SOURCE CODE ^

0001 function h = drawPoint3d(varargin)
0002 %DRAWPOINT3D Draw 3D point on the current axis.
0003 %
0004 %   drawPoint3d(X, Y, Z)
0005 %   will draw points defined by coordinates X, Y and Z.
0006 %   X, Y and Z are N*1 array, with N being number of points to be drawn.
0007 %
0008 %   drawPoint3d(COORD) packs coordinates in a single [N*3] array.
0009 %
0010 %   drawPoint3d(..., OPT) will draw each point with given option. OPT is a
0011 %   string compatible with 'plot' model.
0012 %
0013 %   drawPoint3d(AX,...) plots into AX instead of GCA.
0014 %
0015 %   H = drawPoint3d(...) returns a handle H to the line object
0016 %
0017 %   Example
0018 %     % generate points on a 3D circle
0019 %     pts = circleToPolygon([40 30 20], 120);
0020 %     mat = eulerAnglesToRotation3d([30 20 10]);
0021 %     pts3d = transformPoint3d([pts zeros(120,1)],mat);
0022 %     figure; drawPoint3d(pts3d, 'b.');
0023 %     view(3); axis equal;
0024 %
0025 %   See also
0026 %     points3d, clipPoints3d, drawPoint
0027 %
0028 
0029 % ---------
0030 % Author : David Legland
0031 % INRA - TPV URPOI - BIA IMASTE
0032 % created the 18/02/2005.
0033 %
0034 %   HISTORY
0035 %   04/01/2007: remove unused variables, and enhance support for plot
0036 %       options
0037 %   12/02/2010 does not clip points anymore
0038 %   12/01/2018 added axes handle input
0039 %
0040 
0041 if isAxisHandle(varargin{1})
0042     hAx = varargin{1};
0043     varargin(1)=[];
0044 else
0045     hAx = gca;
0046 end
0047 
0048 if length(varargin) == 1 && size(varargin{1}, 2) == 3
0049     % points are given as one single array with 3 columns
0050     px = varargin{1}(:,1);
0051     py = varargin{1}(:,2);
0052     pz = varargin{1}(:,3);
0053     varargin = {};
0054 elseif length(varargin) == 2 && size(varargin{1}, 2) == 3
0055     % points are given as one single array with 3 columns
0056     px = varargin{1}(:,1);
0057     py = varargin{1}(:,2);
0058     pz = varargin{1}(:,3);
0059     varargin = varargin(2);
0060 elseif length(varargin) >= 3 && size(varargin{1}, 2) == 3
0061     % points are given as one single array with 3 columns
0062     px = varargin{1}(:,1);
0063     py = varargin{1}(:,2);
0064     pz = varargin{1}(:,3);
0065     varargin = varargin(2:end);
0066 elseif length(varargin) == 3 && numel(varargin{1})==numel(varargin{2}) && numel(varargin{1})==numel(varargin{3})
0067     % points are given as 3 columns with equal lengths
0068     px = varargin{1};
0069     py = varargin{2};
0070     pz = varargin{3};
0071     varargin = {};
0072 elseif length(varargin) > 3
0073     % points are given as 3 columns with equal lengths
0074     px = varargin{1};
0075     py = varargin{2};
0076     pz = varargin{3};
0077     varargin = varargin(4:end);
0078 else
0079     error('wrong number of arguments in drawPoint3d');
0080 end
0081 
0082 % default draw style: no line, marker is 'o'
0083 if length(varargin) ~= 1
0084     varargin = ['linestyle', 'none', 'marker', 'o', varargin];
0085 end
0086 
0087 % plot only points inside the axis.
0088 hh = plot3(hAx, px, py, pz, varargin{:});
0089 
0090 if nargout > 0
0091     h = hh;
0092 end

Generated on Wed 16-Feb-2022 15:10:47 by m2html © 2003-2019