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
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];