MATLAB画一把伞

Matlab 复制代码
% 伞的参数

num_ribs = 5; % 伞骨数量修改为5

R = 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_ribs

theta_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 on

end

% 绘制伞柄

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 on

x_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;
相关推荐
LXS_3576 小时前
Day17 C++提高 之 类模板案例
开发语言·c++·笔记·算法·学习方法
leo__5206 小时前
基于MATLAB实现的鲁棒性音频数字水印系统
开发语言·matlab·音视频
2301_789015626 小时前
C++:多态(面向对象的主要手段之一)
c语言·开发语言·c++·多态
小年糕是糕手6 小时前
【C++】string类(一)
linux·开发语言·数据结构·c++·算法·leetcode·改行学it
sali-tec6 小时前
C# 基于halcon的视觉工作流-章70 深度学习-Deep OCR
开发语言·人工智能·深度学习·算法·计算机视觉·c#·ocr
晚霞的不甘6 小时前
C语言利用数组处理批量数据详解
android·c语言·开发语言
_OP_CHEN6 小时前
【从零开始的Qt开发指南】(十二)Qt 布局管理器终极指南:5 大布局 + 实战案例,搞定所有界面排版需求
开发语言·qt·前端开发·qt控件·布局管理器·gui开发
ForteScarlet6 小时前
Kotlin 2.3.0 现已发布!又有什么好东西?
android·开发语言·后端·ios·kotlin
武藤一雄6 小时前
C#中常见集合都有哪些?
开发语言·微软·c#·.net·.netcore
艾上编程6 小时前
第四章——桌面小程序场景之使用Tkinter制作文件格式转换器:满足日常格式转换需求
开发语言·小程序