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

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 % E-mail: david.legland@inrae.fr
0021 % Created: 2005-02-21
0022 % Copyright 2005-2024 INRA - TPV URPOI - BIA IMASTE
0023 
0024 % compute first direction vector
0025 d1  = normalizeVector3d(plane1(:,4:6));
0026 
0027 % compute second direction vector
0028 n   = normalizeVector3d(planeNormal(plane1));
0029 d2  = -normalizeVector3d(crossProduct3d(d1, n));
0030 
0031 % compute origin point of the plane
0032 origins = repmat([0 0 0], [size(plane1, 1) 1]);
0033 p0 = projPointOnPlane(origins, [plane1(:,1:3) d1 d2]);
0034 
0035 % create the resulting plane
0036 plane2 = [p0 d1 d2];

Generated on Thu 21-Nov-2024 11:30:22 by m2html © 2003-2022