墨襄清荷 2021-07-06 13:07 采纳率: 100%
浏览 301
已采纳

MATLAB 三维长方体中的随机分布

用MATLAB绘制一个三维长方体,并用50个小圆表示在长方体中的随机分布。长方体长宽高为100,80,50,小圆半径为0.1。

  • 写回答

1条回答 默认 最新

  • CSDN专家-Matlab_Fans 2021-07-06 22:17
    关注

    代码:

    x = 100;
    y = 80;
    z = 50;
    theta = linspace(0,2*pi,50);
    phi = linspace(0,2*pi,50);
    [theta,phi] = meshgrid(theta,phi);
    r = 1;
    X0 = r*cos(phi).*cos(theta);
    Y0 = r*cos(phi).*sin(theta);
    Z0 = r*sin(phi);
    
    % 绘图
    X = [0 x x 0 
         0 x x 0
         0 0 0 0
         x x x x
         0 x x 0]';
    Y = [0 0 y y
         0 0 y y
         0 y y 0
         0 y y 0
         y y y y]';
    Z = [0 0 0 0
         z z z z
         0 0 z z
         0 0 z z
         0 0 z z ]';
    figure
    patch(X,Y,Z,'r');
    view(3)
    hold on
    for ii = 1:50
        p = [rand*100 rand*80 rand*50];    % 球心
        X2= p(1) + X0;
        Y2 = p(2) + Y0;
        Z2 = p(3) + Z0;
        patch( X2,Y2,Z2,'g' )
    end
    

    圆半径0.1太小了,看不出效果,我改成1效果如下:

    img

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 已采纳回答 7月10日