-
Notifications
You must be signed in to change notification settings - Fork 3
Expand file tree
/
Copy pathPlotBoundingBox.m
More file actions
49 lines (46 loc) · 2.06 KB
/
Copy pathPlotBoundingBox.m
File metadata and controls
49 lines (46 loc) · 2.06 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
function PlotBoundingBox(color,lineStyle,direction,h,...
leftEdge,rightEdge,frontEdge,rearEdge)
%第一个投影向量的角度
angle=direction;
%旋转角度对应的旋转矩阵
rotateMat=[cos(angle) -sin(angle);
sin(angle) cos(angle)];
%绘制顶面的四个角点
corners=zeros(4,3);
corners(1,1:2)=[leftEdge frontEdge]*rotateMat;%左前
corners(2,1:2)=[leftEdge rearEdge]*rotateMat;%左后
corners(3,1:2)=[rightEdge frontEdge]*rotateMat;%右前
corners(4,1:2)=[rightEdge rearEdge]*rotateMat;%右后
corners(:,3)=h;
plot3(corners(:,1),corners(:,2),corners(:,3),[color 's']);
%绘制顶面的四条线
line1 = [corners(1,:); corners(2,:)];
line2 = [corners(3,:); corners(4,:)];
line3 = [corners(1,:); corners(3,:)];
line4 = [corners(2,:); corners(4,:)];
line(line1(:,1),line1(:,2),line1(:,3),'color',color,'LineStyle',lineStyle)
line(line2(:,1),line2(:,2),line2(:,3),'color',color,'LineStyle',lineStyle)
line(line3(:,1),line3(:,2),line3(:,3),'color',color,'LineStyle',lineStyle)
line(line4(:,1),line4(:,2),line4(:,3),'color',color,'LineStyle',lineStyle)
%绘制底面的四个角点
corners(:,3)=0;
plot3(corners(:,1),corners(:,2),corners(:,3),[color 's']);
%绘制底面的四条线
line1 = [corners(1,:); corners(2,:)];
line2 = [corners(3,:); corners(4,:)];
line3 = [corners(1,:); corners(3,:)];
line4 = [corners(2,:); corners(4,:)];
line(line1(:,1),line1(:,2),line1(:,3),'color',color,'LineStyle',lineStyle)
line(line2(:,1),line2(:,2),line2(:,3),'color',color,'LineStyle',lineStyle)
line(line3(:,1),line3(:,2),line3(:,3),'color',color,'LineStyle',lineStyle)
line(line4(:,1),line4(:,2),line4(:,3),'color',color,'LineStyle',lineStyle)
%绘制侧面的四条线
line1 = [[corners(1,1:2) 0]; [corners(1,1:2) h]];
line2 = [[corners(2,1:2) 0]; [corners(2,1:2) h]];
line3 = [[corners(3,1:2) 0]; [corners(3,1:2) h]];
line4 = [[corners(4,1:2) 0]; [corners(4,1:2) h]];
line(line1(:,1),line1(:,2),line1(:,3),'color',color,'LineStyle',lineStyle)
line(line2(:,1),line2(:,2),line2(:,3),'color',color,'LineStyle',lineStyle)
line(line3(:,1),line3(:,2),line3(:,3),'color',color,'LineStyle',lineStyle)
line(line4(:,1),line4(:,2),line4(:,3),'color',color,'LineStyle',lineStyle)
end