【问题标题】:Matlab: using scatter3 to draw horizontal squaresMatlab:使用scatter3绘制水平方块
【发布时间】:2017-06-06 23:15:34
【问题描述】:

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可以画垂直正方形,但是我想画水平正方形,与浅红色的两个界面平行。我尝试了旋转功能,但它不起作用。

【问题讨论】:

    标签: matlab scatter3d


    【解决方案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 平面上绘制正方形。它可以推广到任何平面。

    【讨论】:

      猜你喜欢
      • 2011-12-08
      • 1970-01-01
      • 2016-01-27
      • 1970-01-01
      • 2014-01-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多