matlab画图形的包络图,求大神指点绘制空间内散点图的包络面,,,散点程序如下...

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼

E=[];a=0;b=0;c=0;

for Zp=-50:2:50

for Xp=-200:2:200

for Yp=-200:2:200

P1_1=[cos(b)*cos(c) -cos(b)*sin(c) sin(b) Xp;sin(a)*sin(b)*cos(c)+cos(a)*sin(c) cos(a)*cos(c)-sin(a)*sin(b)*sin(c) -sin(a)*cos(b) Yp;sin(a)*sin(c)-cos(a)*sin(b)*cos(c) cos(a)*sin(b)*sin(c)+sin(a)*cos(c) cos(a)*cos(b) Zp;0 0 0 1]*[42.01;50.25;0;1]+[0;0; -208.897;0];

P2_1=[cos(b)*cos(c) -cos(b)*sin(c) sin(b) Xp;sin(a)*sin(b)*cos(c)+cos(a)*sin(c) cos(a)*cos(c)-sin(a)*sin(b)*sin(c) -sin(a)*cos(b) Yp;sin(a)*sin(c)-cos(a)*sin(b)*cos(c) cos(a)*sin(b)*sin(c)+sin(a)*cos(c) cos(a)*cos(b) Zp;0 0 0 1]*[-42.01;50.25;0;1]+[0;0; -208.897;0];

P3_1=[cos(b)*cos(c) -cos(b)*sin(c) sin(b) Xp;sin(a)*sin(b)*cos(c)+cos(a)*sin(c) cos(a)*cos(c)-sin(a)*sin(b)*sin(c) -sin(a)*cos(b) Yp;sin(a)*sin(c)-cos(a)*sin(b)*cos(c) cos(a)*sin(b)*sin(c)+sin(a)*cos(c) cos(a)*cos(b) Zp;0 0 0 1]*[-64.52;11.26;0;1]+[0;0; -208.897;0];

P4_1=[cos(b)*cos(c) -cos(b)*sin(c) sin(b) Xp;sin(a)*sin(b)*cos(c)+cos(a)*sin(c) cos(a)*cos(c)-sin(a)*sin(b)*sin(c) -sin(a)*cos(b) Yp;sin(a)*sin(c)-cos(a)*sin(b)*cos(c) cos(a)*sin(b)*sin(c)+sin(a)*cos(c) cos(a)*cos(b) Zp;0 0 0 1]*[-22.51;-61.51;0;1]+[0;0; -208.897;0];

P5_1=[cos(b)*cos(c) -cos(b)*sin(c) sin(b) Xp;sin(a)*sin(b)*cos(c)+cos(a)*sin(c) cos(a)*cos(c)-sin(a)*sin(b)*sin(c) -sin(a)*cos(b) Yp;sin(a)*sin(c)-cos(a)*sin(b)*cos(c) cos(a)*sin(b)*sin(c)+sin(a)*cos(c) cos(a)*cos(b) Zp;0 0 0 1]*[22.51;-61.51;0;1]+[0;0; -208.897;0];

P6_1=[cos(b)*cos(c) -cos(b)*sin(c) sin(b) Xp;sin(a)*sin(b)*cos(c)+cos(a)*sin(c) cos(a)*cos(c)-sin(a)*sin(b)*sin(c) -sin(a)*cos(b) Yp;sin(a)*sin(c)-cos(a)*sin(b)*cos(c) cos(a)*sin(b)*sin(c)+sin(a)*cos(c) cos(a)*cos(b) Zp;0 0 0 1]*[64.52;11.26;0;1]+[0;0; -208.897;0];

ZB1_1=P1_1(3)+sqrt(223^2-(P1_1(1)-27.15)^2-(P1_1(2)-126.87)^2);

ZB2_1=P2_1(3)+sqrt(223^2-(P2_1(1)+27.15)^2-(P2_1(2)-126.87)^2);

ZB3_1=P3_1(3)+sqrt(223^2-(P3_1(1)+123.45)^2-(P3_1(2)+39.92)^2);

ZB4_1=P4_1(3)+sqrt(223^2-(P4_1(1)+96.29)^2-(P4_1(2)+86.95)^2);

ZB5_1=P5_1(3)+sqrt(223^2-(P5_1(1)-96.29)^2-(P5_1(2)+86.95)^2);

ZB6_1=P6_1(3)+sqrt(223^2-(P6_1(1)-123.45)^2-(P6_1(2)+39.92)^2);

if ((ZB1_1<=50)&&(ZB2_1<=50)&&(ZB3_1<=50)&&(ZB4_1<=50)&&(ZB5_1<=50)&&(ZB6_1<=50)&&(ZB1_1>=(-50))&&(ZB2_1>=(-50))&&(ZB3_1>=(-50))&&(ZB4_1>=(-50))&&(ZB5_1>=(-50))&&(ZB6_1>=(-50)))

P0_1=[cos(b)*cos(c) -cos(b)*sin(c) sin(b) Xp;sin(a)*sin(b)*cos(c)+cos(a)*sin(c) cos(a)*cos(c)-sin(a)*sin(b)*sin(c) -sin(a)*cos(b) Yp;sin(a)*sin(c)-cos(a)*sin(b)*cos(c) cos(a)*sin(b)*sin(c)+sin(a)*cos(c) cos(a)*cos(b) Zp;0 0 0 1]*[0;0;0;1]+[0;0; -208.897;0];

E=[E,P0_1];

end

end

end

end

Xp0_1=E(1,:);

Yp0_1=E(2,:);

Zp0_1=E(3,:);

plot3(Xp0_1,Yp0_1,Zp0_1,'.');

xlabel('x');ylabel('y');zlabel('z');

grid on

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Matlab中,你可以使用scatter函数来绘制散点图,使用convhulln函数来计算凸包的坐标,然后使用patch函数将坐标点连接成包络。下是一个示例代码: ```matlab A = importdata('E:\各种数据集\220417\y001.txt'); B = importdata('E:\各种数据集\220417\001yy.txt'); Ax = A(:, 1); Ay = A(:, 2); Az = A(:, 3); Bx = B(:, 1); By = B(:, 2); Bz = B(:, 3); figure; scatter3(Ax, Ay, Az, 'filled', 'MarkerFaceColor', 'r'); hold on; scatter3(Bx, By, Bz, 'filled', 'MarkerFaceColor', 'b'); f = convhulln(A); patch('vertices', A, 'faces', f, 'facecolor', 'r', 'FaceAlpha', 0.3); f1 = convhulln(B); patch('vertices', B, 'faces', f1, 'facecolor', 'b', 'FaceAlpha', 0.3); axis equal; xlabel('X'); ylabel('Y'); zlabel('Z'); title('散点图绘制包络'); ``` 这段代码会将两组数据点A和B绘制散点图,并使用convhulln函数计算出A和B的凸包坐标,然后使用patch函数将凸包坐标连接成包络。你可以根据自己的数据文件路径进行修改。 #### 引用[.reference_title] - *1* [阿雪的学习记录|MATLAB绘制三维离散点包络体](https://blog.csdn.net/baixue1183/article/details/125013589)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值