transform infinite plane into finite circular plane

3 ビュー (過去 30 日間)
Alberto Acri
Alberto Acri 2023 年 9 月 24 日
編集済み: Bruno Luong 2023 年 9 月 25 日
Is it possible to generate a plan of limited dimensions, for example a 10x10 square?
line = importdata("line_w.mat");
normal = importdata("normal_w.mat");
row = 10; % variabile
P = line(row,:);
plane = normal(row,:);
a=plane(1); b=plane(2); c=plane(3);
d=dot(plane,P);
figure
plot3(line(:,1),line(:,2),line(:,3),'r.','Markersize',10);
hold on
plot3(P(:,1),P(:,2),P(:,3),'b.','Markersize',15);
fimplicit3(@(x,y,z) a*x+b*y+z*c-d)
hold off
axis equal
xlabel('x')
ylabel('y')
zlabel('z')
xlim([0 50])
ylim([-50 20])

採用された回答

Matt J
Matt J 2023 年 9 月 24 日
編集済み: Matt J 2023 年 9 月 24 日
You can use patch.
[a,b,c]=deal(1); %fake input data
P=[1 1 1];
R=2;
t=(0:359)';
V=R*[cosd(t),sind(t)]*null([a,b,c])' + P(:)';
patch(V(:,1), V(:,2),V(:,3),'r'); axis square
view(40,25); grid on
  6 件のコメント
Alberto Acri
Alberto Acri 2023 年 9 月 25 日
I would not know. At the moment any orientation is fine.
Bruno Luong
Bruno Luong 2023 年 9 月 25 日
編集済み: Bruno Luong 2023 年 9 月 25 日
[a,b,c]=deal(1); %fake input data
P=[1 1 1];
% ellipse principla axis lengths
R1=1;
R2=5;
t=(0:359)';
V=[cosd(t),sind(t)]*diag([R1,R2])*null([a,b,c])' + P(:)';
patch(V(:,1), V(:,2),V(:,3),'r'); axis square
view(40,25); grid on

サインインしてコメントする。

その他の回答 (1 件)

Image Analyst
Image Analyst 2023 年 9 月 24 日
Perhaps try rescaling the appropriate variables with rescale.
  1 件のコメント
Alberto Acri
Alberto Acri 2023 年 9 月 24 日
編集済み: Alberto Acri 2023 年 9 月 24 日
Thanks for the response. Could you tell me how to obtain the matrix to use in 'rescale'?
Also, is it possible to generate, on that plane created with fimplicit3, a circular-shaped plane defined by the radius R?

サインインしてコメントする。

製品


リリース

R2021b

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by