根据花瓶的侧面投影图,用Matlab绘制花瓶的三维立体图

您所在的位置:网站首页 用matlab绘制三维图形题目的报告怎么写 根据花瓶的侧面投影图,用Matlab绘制花瓶的三维立体图

根据花瓶的侧面投影图,用Matlab绘制花瓶的三维立体图

2024-07-16 18:01| 来源: 网络整理| 查看: 265

现有一花瓶侧面投影如图       

问题:

1)    做出该花瓶三维立体图;

2)    计算其表面积;

    计算其体积。

 

  第一次参加数学建模,从来没有接触过Matlab语言,一上来就碰到这种数字图像处理的问题就懵了。完全是一边摸索,一边自学Matlab语言,一遍又一遍的在机子上调试。出错了就改;运行不同了就调试.....异常辛苦。在这之前只会C/C++语言,而且这两种语言还只停留在书本上,没有编程经验。所以在参加建模以前颇费了思量,下了一番决心。以前笃信一句名言——“机会是留给有准备的人的”,当时那句名言写在中学的一块标志牌上,所以记得很清楚。这句话乍看一下没有错,但仔细想想,你会发现一个问题。如果你每次都因为没有准备好,而拒绝尝试,放弃机会,你怎么能知道自己需要准备什么,怎么会提高呢?退一步讲,即使第一次你失败了,但你有了这次经历,有了经验,知道了自己的不足,知道了自己还需要准备什么,你就可以在心里对自己说,“我还会回来的,明年再战”。从这个角度讲,你就是赢家。

  总结起来就是一句话“年轻人,不要害怕失败,不要拒绝尝试”。

 

  闲话少说,切入正题。

  数字图像在计算机中使用数字(0~255)表示的,对上图中的花瓶来讲,图中阴影部分用‘0’表示,空白部分用‘1’表示。一个自然而然的想法就是利用这个特点,找出花瓶边缘的坐标,然后拟合出一条曲线(本文使用三次样条曲线拟合花瓶侧面轮廓曲线),剩下的交给Matlab就可以了。对于表面积和体积,可以采用梯形法数值积分的方法。

源程序:

clearX=imread('t1.bmp');[m,n]=size(X);A=[];A1=[];A2=[];k1=1;k2=1;

%寻找花瓶的最上面坐标for j=1:n for i=1:m if X(i,j)==0 A1(k1)=i;k1=k1+1; break; end endendn1=min(A1);%寻找花瓶的最下面坐标for j=1:n for i=m:-1:1 if X(i,j)==0 A2(k2)=i;k2=k2+1; break; end endendn2=max(A2);%读出花瓶左侧轮廓的y坐标for i=1:m for j=1:n if X(i,j)==0 A(i)=j; break; end endend%%%绘制三维立体图x1=n1:n2;x=n1:1:n2;y=spline(x1,A(x1),x);[X,Y,Z]=cylinder(520-y,60);mesh(X,Y,Z)

%计算体积vi=pi*(y-520).^2;V=trapz(x,vi)

%计算表面积for i=1:1:n2-n1+1 if i



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3