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

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日

悬赏问题

  • ¥15 C++使用Gunplot
  • ¥15 这个电路是如何实现路灯控制器的,原理是什么,怎么求解灯亮起后熄灭的时间如图?
  • ¥15 matlab数字图像处理频率域滤波
  • ¥15 在abaqus做了二维正交切削模型,给刀具添加了超声振动条件后输出切削力为什么比普通切削增大这么多
  • ¥15 ELGamal和paillier计算效率谁快?
  • ¥15 file converter 转换格式失败 报错 Error marking filters as finished,如何解决?
  • ¥15 Arcgis相交分析无法绘制一个或多个图形
  • ¥15 关于#r语言#的问题:差异分析前数据准备,报错Error in data[, sampleName1] : subscript out of bounds请问怎么解决呀以下是全部代码:
  • ¥15 seatunnel-web使用SQL组件时候后台报错,无法找到表格
  • ¥15 fpga自动售货机数码管(相关搜索:数字时钟)