How can I plot a 3D plane knowing its center point coordinates and its Normal
68 views (last 30 days)
Show older comments
Abeer Heikal
on 22 Jun 2016
Answered: Nitin Phadkule
on 18 Sep 2021
How can I plot a 3D plane knowing its center point coordinates and its Normal ?
0 Comments
Accepted Answer
Roger Stafford
on 23 Jun 2016
Edited: Roger Stafford
on 23 Jun 2016
Using Dr. Siva’s notation with the point at (x1,y1,z1) and normal vector v = [a,b,c], (v should be a row vector,) you can plot a surface version of the plane with this:
w = null(v); % Find two orthonormal vectors which are orthogonal to v
[P,Q] = meshgrid(-50:50); % Provide a gridwork (you choose the size)
X = x1+w(1,1)*P+w(1,2)*Q; % Compute the corresponding cartesian coordinates
Y = y1+w(2,1)*P+w(2,2)*Q; % using the two vectors in w
Z = z1+w(3,1)*P+w(3,2)*Q;
surf(X,Y,Z)
2 Comments
Roger Stafford
on 27 Jun 2016
If I understand you correctly Abeer, I have to disagree with your statement that "there can be infinite number of 3D planes". For a 3D plane to have a given normal direction and to contain a given point makes that plane absolutely unique - no other such plane is possible. Remember, we are speaking of mathematically perfectly flat planes, not curved ones.
More Answers (2)
KSSV
on 22 Jun 2016
You know a point (x1,y1,z1) and normal vector (a,b,c). Then equation of plane should be:
a(x-x1)+b(y-y1)+c(z-z1) = 0 ;
Nitin Phadkule
on 18 Sep 2021
% ax+by+cz+d plane
% 3x+2y+6z+2 plane
y =linspace(-4,4,51);
a=3;b=2;c=6;d=2;
x =linspace(-4,4,51);
[y2,x2]=meshgrid(y ,x );
z2=(1/c).*(d+(a.*x2)+(b.*y2));% ax+by+cz+d plane
surf( x2,y2,z2 );
0 Comments
See Also
Categories
Find more on Scatter Plots in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!