Given a point in 3D space, and a plane parameterized by its coefficients (C = [a b c] where z = a*x + b*y + c), dist2plane will calculate the distance from the point to the plane along the normal.
Val Schmidt (2021). dist2plane (https://www.mathworks.com/matlabcentral/fileexchange/36363-dist2plane), MATLAB Central File Exchange. Retrieved .
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!Create scripts with code, output, and formatted text in a single executable document.
I'm used to define a plane as "ax+by+cz+d=0", by the normal and one point or by three points. Can your formula define the XY-, YZ- and XZ-planes?
See http://en.wikipedia.org/wiki/Plane_%28geometry%29
Hi Jan,
The plane is defined by the equation:
z = C(1)x + C(2)y + C(3)
Try
x=1:10;
y=1:10;
[xx yy ] = meshgrid(x,y)
C = [1 2 3];
zz = C(1)*xx+C(2)*yy+C(3)
surf(xx,yy,zz,'edgecolor','none')
-Val
PS. You are right about the transposing. Thanks.
I do not get how to define the plane:
"C: 3x1 plane coeficient vector i.e., zplane = C(1)*x+C(2)+C(3)". Which value of C defines the e.g. Z-plane?
In "sqrt(sum((po-pp)'.^2))" the transposing is inefficient. Better: "sqrt(sum((po-pp).^2, 2))"