Matlab:使用scatter3绘制水平方块

时间:2017-06-06 23:15:34

标签: matlab scatter3d

enter image description here

h1 = scatter3(X_Horiz,Y_Horiz,Z_Horiz,200,'s','filled',...
                           'MarkerEdgeColor','b','MarkerFaceColor',[0 .75 .75]);
hold on;

h2 = scatter3(X_Vert,Y_Vert,Z_Vert,200,'s','filled',...
                           'MarkerEdgeColor','g','MarkerFaceColor',[0 .75 .75]);
hold on;

我知道scatter3可以绘制垂直方块,但是,我想绘制与浅红色两个界面平行的水平方块。我尝试旋转功能,但它不起作用。

1 个答案:

答案 0 :(得分:1)

您可以通过指定边长来绘制自己的方块。您可以遵循以下内容:

function myscatter3()
N = 10 ;
data = rand(N,2) ;
x = data(:,1) ; y = data(:,2) ; z = zeros(size(x)) ;

dx = 0.05 ;
figure
hold on
for i = 1:N
    coor = MakeSquare(x(i),y(i),dx) ;
    patch(coor(:,1),coor(:,2),coor(:,3),'w','edgecolor','k') ;
end
view(3)    
end

function coor = MakeSquare(x,y,dx)

coor = zeros(4,3) ;

coor(1,:) = [x-dx/2,y-dx/2,0] ;
coor(2,:) = [x+dx/2,y-dx/2,0] ;
coor(3,:) = [x+dx/2,y+dx/2,0] ;
coor(4,:) = [x-dx/2,y+dx/2,0] ;
end 

请注意,该代码可以进行微调。它在xy平面绘制正方形。它可以推广到任何平面。