?
% 傘的參數num_ribs = 5; % 傘骨數量修改為5R = 1; % 傘的半徑height = 0.5; % 傘的高度handle_length = 2; % 傘柄長度semicircle_radius = 0.26; % 傘柄末端半圓的半徑% 生成傘葉網格theta = linspace(0, 2*pi, 100);phi = linspace(0, pi/2, 50);[Theta, Phi] = meshgrid(theta, phi);% 計算傘葉的坐標X = R * cos(Theta) .* sin(Phi);Y = R * sin(Theta) .* sin(Phi);Z = height * cos(Phi);% 給傘葉添加一些隨機波動,模擬褶皺noise = 0.009 * randn(size(Z));Z = Z + noise;% 繪制傘葉figure;surf(X, Y, Z, 'FaceColor', 'interp', 'EdgeColor', 'none');hold on% 繪制傘骨for i = 1:num_ribstheta_rib = (i - 1) * 2*pi / num_ribs;x_rib = R * cos(theta_rib) * sin(phi);y_rib = R * sin(theta_rib) * sin(phi);z_rib = height * cos(phi);plot3(x_rib, y_rib, z_rib, 'k', 'LineWidth', 2);hold onend% 繪制傘柄x_handle = [0, 0];y_handle = [0, 0];z_handle = [0, -handle_length+0.5];plot3(x_handle, y_handle, z_handle+[0.5,0.5], 'k', 'LineWidth', 3);hold onx_handle = [0, 0];y_handle = [0, 0];z_handle = [0, handle_length*0.1];plot3(x_handle, y_handle, z_handle+[0.5,0.5], 'k', 'LineWidth', 3);hold on% 繪制傘柄末端的半圓semicircle_theta = linspace(0, pi, 50);x_semicircle = semicircle_radius * cos(semicircle_theta);y_semicircle = -handle_length * ones(size(semicircle_theta));z_semicircle = -semicircle_radius * sin(semicircle_theta);plot3(x_semicircle+0.15+0.12, y_semicircle+2, z_semicircle-1, 'k', 'LineWidth', 3);% 設置視角和坐標軸axis equal;view(3);box on;camlight;lighting gouraud;