How to draw a Plane perpendicular to a line and then generate multiple planes at regular intervals
10 ビュー (過去 30 日間)
古いコメントを表示
If I have a line defined by
P1 = [1, -1, 3];
P2 = [2, 3, 4];
How can I draw a plane perpendicular to this line please. I have read the previous posts on this but I m not clear how to draw the surface. Plane can be initially at the mid point of the line.
Then I want to be able to generate multiple planes at regular intervals .
Thanks
0 件のコメント
採用された回答
Arya Chandan Reddy
2023 年 6 月 29 日
編集済み: Arya Chandan Reddy
2023 年 6 月 29 日
Hi, I understand that you are trying to generate a plane perpendicular to the line joining those two points. In 3d geometry any plane is defined by the equation ax + by + cz = d , where [a b c] is the direction of plane's normal ( which is perpendicular to the plane )
Hence, direction of normal is P2 - P1. [a b c]
And the dot product of normal and the mid point gives d.
Here is the code
P1 = [1, -1, 3];
P2 = [2, 3, 4];
midpoint = (P1 + P2) / 2;
normal = P2 - P1;
% Create a grid of points for the plane
[X, Y] = meshgrid(-10:10, -10:10);
Z = (-normal(1) * X - normal(2) * Y + dot(normal, midpoint)) / normal(3);
% Plot the plane
figure;
hold on;
surf(X, Y, Z,'FaceAlpha', 0.5);
plot3([P1(1), P2(1)], [P1(2), P2(2)], [P1(3), P2(3)], 'r', 'LineWidth', 2);
hold off;
xlabel('X');
ylabel('Y');
zlabel('Z');
title('Plane Perpendicular to Line Joining Two Points');
grid on;
axis equal;
Refer the documentation for better understanding
Hope it helps.
4 件のコメント
Dyuman Joshi
2023 年 7 月 2 日
Why are you using the elements of P1 and P2 as indices for normal array while defining Z?
その他の回答 (0 件)
参考
カテゴリ
Help Center および File Exchange で Point Cloud Processing についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!