Home > matGeom > geom3d > normalizePlane.m

normalizePlane

PURPOSE ^

NORMALIZEPLANE Normalize parametric representation of a plane.

SYNOPSIS ^

function plane2 = normalizePlane(plane1)

DESCRIPTION ^

NORMALIZEPLANE Normalize parametric representation of a plane.

   PLANE2 = normalizePlane(PLANE1);
   Transforms the plane PLANE1 in the following format:
   [X0 Y0 Z0  DX1 DY1 DZ1  DX2 DY2 DZ2], where:
   - (X0, Y0, Z0) is a point belonging to the plane
   - (DX1, DY1, DZ1) is a first direction vector
   - (DX2, DY2, DZ2) is a second direction vector
   into another plane, with the same format, but with:
   - (x0 y0 z0) is the closest point of plane to the origin
   - (DX1 DY1 DZ1) has norm equal to 1
   - (DX2 DY2 DZ2) has norm equal to 1 and is orthogonal to (DX1 DY1 DZ1)
   
   See also:
   planes3d, createPlane

   ---------
   author: David Legland
   INRA - TPV URPOI - BIA IMASTE
   created the 21/02/2005.

CROSS-REFERENCE INFORMATION ^

This function calls: This function is called by:

SOURCE CODE ^

0001 function plane2 = normalizePlane(plane1)
0002 %NORMALIZEPLANE Normalize parametric representation of a plane.
0003 %
0004 %   PLANE2 = normalizePlane(PLANE1);
0005 %   Transforms the plane PLANE1 in the following format:
0006 %   [X0 Y0 Z0  DX1 DY1 DZ1  DX2 DY2 DZ2], where:
0007 %   - (X0, Y0, Z0) is a point belonging to the plane
0008 %   - (DX1, DY1, DZ1) is a first direction vector
0009 %   - (DX2, DY2, DZ2) is a second direction vector
0010 %   into another plane, with the same format, but with:
0011 %   - (x0 y0 z0) is the closest point of plane to the origin
0012 %   - (DX1 DY1 DZ1) has norm equal to 1
0013 %   - (DX2 DY2 DZ2) has norm equal to 1 and is orthogonal to (DX1 DY1 DZ1)
0014 %
0015 %   See also:
0016 %   planes3d, createPlane
0017 %
0018 %   ---------
0019 %   author: David Legland
0020 %   INRA - TPV URPOI - BIA IMASTE
0021 %   created the 21/02/2005.
0022 %
0023 
0024 %   HISTORY
0025 %   21/08/2009 compute origin after computation of vectors (more precise)
0026 %       and add support for several planes.
0027 
0028 % compute first direction vector
0029 d1  = normalizeVector3d(plane1(:,4:6));
0030 
0031 % compute second direction vector
0032 n   = normalizeVector3d(planeNormal(plane1));
0033 d2  = -normalizeVector3d(crossProduct3d(d1, n));
0034 
0035 % compute origin point of the plane
0036 origins = repmat([0 0 0], [size(plane1, 1) 1]);
0037 p0 = projPointOnPlane(origins, [plane1(:,1:3) d1 d2]);
0038 
0039 % create the resulting plane
0040 plane2 = [p0 d1 d2];

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