• 基于二维切片图序列的三维立体建模MATLAB仿真


    目录

    1.算法概述

    2.仿真效果预览

    3.核心MATLAB程序

    4.完整MATLAB程序


    1.算法概述

    isosurface 等值面函数

    调用格式: fv = isosurface(X,Y,Z,V,isovalue)

           作用:返回某个等值面(由 isovalue 指定)的表面( faces )和顶点( vertices )数据,存放在结构体 fv 中( fv 由 vertices 、 faces 两个域构成)。如果是画隐函数 v = f(x,y,z) = 0 的三维图形,那么等值面的数值为 isovalue = 0 。

    isosurface的语法

    fv = isosurface(X,Y,Z,V,isovalue)

    fv = isosurface(V,isovalue)

    fvc = isosurface(...,colors)

    slice等值面函数

    slice(X,Y,Z,V,xslice,yslice,zslice) 为三维体数据 V 绘制切片。指定 X、Y 和 Z 作为坐标数据。使用以下形式之一指定 xslice、yslice 和 zslice 作为切片位置:

    • 要绘制一个或多个与特定轴正交的切片平面,请将切片参数指定为标量或向量。
    • 要沿曲面绘制单个切片,请将所有切片参数指定为定义曲面的矩阵。

    slice(V,xslice,yslice,zslice) 使用 V 的默认坐标数据。V 中每个元素的 (x,y,z) 位置分别基于列、行和页面索引。

    slice(_,method) 指定插值方法,其中 method 可以是 ‘linear’(默认值)、’cubic’ 或 ‘nearest’。可将此选项与上述语法中的任何输入参数一起使用。

    slice(ax,_) 在指定坐标区而不是当前坐标区 (gca) 中绘图。

    s = slice(_) 返回创建的 Surface 对象。slice 为每个切片返回一个 Surface 对象。

    2.仿真效果预览

     基于二维切片图序列的三维立体建模MATLAB仿真

     

    3.核心MATLAB程序

    1. ...............................
    2. h=figure(1);
    3. set(h,'name','取单切片')
    4. subplot(221)
    5. slice(x,y,z,v,[],[1],[]); % 切片函数 y=1
    6. shading interp % 平滑处理
    7. set(gca,'zdir','reverse'); % ‘’都是属性调整
    8. axis equal % 将横轴纵轴的定标系数设成相同值 ,即单位长度相同
    9. grid on
    10. subplot(222)
    11. slice(x,y,z,v,[],[2],[]); % 切片函数 y=2
    12. shading interp % 平滑处理
    13. colormap('jet') % 颜色属性
    14. set(gca,'zdir','reverse'); % ‘’都是属性调整
    15. axis equal
    16. grid on
    17. subplot(223)
    18. slice(x,y,z,v,[],[3],[]);
    19. shading interp
    20. set(gca,'zdir','reverse');
    21. axis equal
    22. grid on
    23. subplot(224)
    24. slice(x,y,z,v,[],[4],[]);
    25. shading interp
    26. set(gca,'zdir','reverse');
    27. axis equal
    28. grid on
    29. % 2.全空间立体切片
    30. h2=figure(2);
    31. set(h2,'name','全空间切片','MenuBar','none','ToolBar','none')
    32. slice(x,y,z,v,[1:2:27],[2 3 4],[2 3 4 5]) % x方向1-27,以2位单元,y方向 分成3分,z方向分成4
    33. shading interp % 图像平滑
    34. colorbar % 颜色条
    35. colormap('jet') % 颜色属性
    36. set(gca,'zdir','reverse'); % 属性调整
    37. axis equal
    38. grid on
    39. box on % 显示坐标区轮廓 显示围绕当前坐标区的框轮廓
    40. % 3.立体包络图
    41. h3=figure(3);
    42. subplot(221);
    43. set(h3,'name','定值包络立体图','MenuBar','none','ToolBar','none')
    44. set(gcf,'InvertHardcopy','off')
    45. fw=150; % fw是作主要可变参数,控制最外层包络面的值 %%此值为最外层包络面取值
    46. fv=isosurface(x,y,z,v,fw); % 从三维体数据中提取等值面数据
    47. % isovalue 中指定的等值面值处的体数据 V 计算等值面数据。等值面连接具有指定值的点,与等高线连接仰角相同的点的方式大致相同
    48. p=patch(fv); % 创建一个或多个填充多边形
    49. set(p,'facecolor','b','edgecolor','none');
    50. patch(isocaps(x,y,z,v, fw), 'FaceColor', 'interp', 'EdgeColor', 'none');% isocaps 计算等值面端帽几何图
    51. % colorbar
    52. % colormap('jet')
    53. box on
    54. daspect([1,1,1]) % 坐标轴尺寸变化为1:1:1
    55. view(3) % 观看角度 三维视角
    56. set(gca,'zdir','reverse','color',[0.2,0.2,0.2]);
    57. camlight % 在照相机坐标系中创建或移动光源对象
    58. camproj perspective % 设置或查询投影类型
    59. lighting phong % 指定光照算法
    60. axis equal
    61. grid on
    62. % title(['最外层表面的值为: ' , num2str(fw)]);
    63. % 三维投影
    64. hold on
    65. subplot(222);
    66. set(h3,'name','定值包络立体图','MenuBar','none','ToolBar','none')
    67. set(gcf,'InvertHardcopy','off')
    68. fw=150; % fw是作主要可变参数,控制最外层包络面的值 %%此值为最外层包络面取值
    69. fv=isosurface(x,y,z,v,fw); % 从三维体数据中提取等值面数据
    70. %isovalue 中指定的等值面值处的体数据 V 计算等值面数据。等值面连接具有指定值的点,与等高线连接仰角相同的点的方式大致相同
    71. ....................................
    72. A002

    4.完整MATLAB程序

    V

  • 相关阅读:
    Sentinel安装与部署
    示例:WPF中TreeView自定义TreeNode泛型绑定对象来实现级联勾选
    Windoes命令CMD&powershell操作
    浅谈Spring Cloud Ribbon原理及其使用方法
    平衡操控应用场景和技术实现探究
    数一满分150分总分451东南大学920电子信息通信考研Jenny老师辅导班同学,真题大纲,参考书。
    [nlp] grad norm先降后升再降
    JavaScript常用事件详解
    明星为何会偷税?我国的交税政策是?
    新风机小助手-风压变速器
  • 原文地址:https://blog.csdn.net/hlayumi1234567/article/details/127833666