matlab,求不规则三维图形体积?各位大虾,小弟因最后这个数据处理问题论文迟迟不能写成,求助!:'( 我测量的x,y的坐标规则,但是Z坐标不规则,用surf(x,y,z)函数,从而形成一个不规则的三维图形

来源:学生作业帮助网 编辑:作业帮 时间:2024/11/15 01:26:08
matlab,求不规则三维图形体积?各位大虾,小弟因最后这个数据处理问题论文迟迟不能写成,求助!:'(        我测量的x,y的坐标规则,但是Z坐标不规则,用surf(x,y,z)函数,从而形成一个不规则的三维图形
xX[SI+*w%d-k+ Y.! נ EALL {{&veLfܾsO9?q8Ok*hjj '_9TX@,Z1 q x.v&Ts%^se*7!'jh5N-4JϏ]'fbA[|=+ʤf^ec-6d $(Q Zc, k Zka7OYPe ={ {EOvlD7AoJL-%Q,iUЬj8J[=03X3f@)< WH$%0)K2%F17Æx %=I./-:w P>COF k+;GjqaX-^3"n`}/Yb+_$+9˽ܒx[K$KPx#<87o`6fRl]!•E~l^@Y#3yϞdq1շ!bހ Kz~bQ@+P綴 /g!!Ҡ jq['80apCz,^BF/)8cnքa0+Ixȝi'w@Ӂpw'//#u`!~"+Ձe (LX'2u)y8aJ#AX^[L ɷ{r+=?7*~&QkneL~U›URz771#t]ם /2 D7=&MByU^B 'esl;E͟O]@uRyV_oly;_MRE;b5bhE;*OJPe[h1l{MhFn/%Dã}i~KۥkhR_.鱝 dfp RNHNQ2ݪZhRo@/TXP'a;nl#v9z Ozc]ߚEӛ1 u9|mu!+fQcP=Z@C;k`_L:TL6QHI7eJJqD-otI7mbJ@ U ]?8K7V|*hG+2;p^pL!HЌV, A-GY- | f!{bX+L)$JkY2"\]-ecDhn ?%ȖpʎB42 D31M(0B8h錣ߘI `anK6, T yP_1f zVF{"LrZYb<3NxЎV*ñ )2zxyXFjwz#A<ۙÙqZ3>Iv]=?Kz}*{Ï8ѨjUGt8:02qB΁pd`hd( á'c@8r=&k^wE}yAW="(QqK+J_tJPB!WRP7 AA㖃a] &X<&@($+BP_ὂ' %(w nQ$+&/

matlab,求不规则三维图形体积?各位大虾,小弟因最后这个数据处理问题论文迟迟不能写成,求助!:'( 我测量的x,y的坐标规则,但是Z坐标不规则,用surf(x,y,z)函数,从而形成一个不规则的三维图形
matlab,求不规则三维图形体积?
各位大虾,小弟因最后这个数据处理问题论文迟迟不能写成,求助!:'(
我测量的x,y的坐标规则,但是Z坐标不规则,用surf(x,y,z)函数,从而形成一个不规则的三维图形.这个图形能否用matlab能否用matlab求出体积?
如果不能,有什么别的绘图软件不仅能做出图来,还能求出体积?
万分感谢!
ps: 比如这样一个简单的图形求体积:
x=[
-1 -1 -1 -1 -1
-0.5 -0.5 -0.5 -0.5 -0.5
0 0 0 0 0
0.5 .0.5 0.5 0.5 0.5
1 1 1 1 1 ];
y=[
1 0.5 0 -0.5 -1
1 0.5 0 -0.5 -1
1 0.5 0 -0.5 -1
1 0.5 0 -0.5 -1
1 0.5 0 -0.5 -1];
z=[
0.82 0.71 0.63 0.41 0.62
0.83 0.63 0.46 0.4 0.48
0.55 0.47 0.48 0.37 0.52
0.5 0.41 0.49 0.39 0.42
0.52 0.57 0.47 0.45 0.34];
surf(x,y,z);
shading interp;

matlab,求不规则三维图形体积?各位大虾,小弟因最后这个数据处理问题论文迟迟不能写成,求助!:'( 我测量的x,y的坐标规则,但是Z坐标不规则,用surf(x,y,z)函数,从而形成一个不规则的三维图形
我咋看也是个光滑曲面呀,哪来的体积?当然假如xy面到曲面之间全被填充为实体,应该能用循环或积分计算每个xy单位面积上的曲顶柱体的体积,然后求和,我用循环尝试了下:
z=[
0.82        0.71        0.63        0.41        0.62
0.83        0.63        0.46        0.4        0.48
0.55        0.47        0.48        0.37        0.52
0.5        0.41        0.49        0.39        0.42
0.52        0.57        0.47        0.45        0.34];
 
x=[-1:0.5:1]
y=[-1:0.5:1]
surf(x,y,z);
shading interp;
for i=1:5
   for j=1:5 
       M(i,j)=z(i,j)*0.5*0.5(对于每个面积为0.5*0.5的小方格以上的曲顶柱体求体积)
   end
end
sum (sum(M))对体积数组(25个元素体积求和)结果如下:
M =
    0.2050    0.1775    0.1575    0.1025    0.1550
    0.2075    0.1575    0.1150    0.1000    0.1200
    0.1375    0.1175    0.1200    0.0925    0.1300
    0.1250    0.1025    0.1225    0.0975    0.1050
    0.1300    0.1425    0.1175    0.1125    0.0850
>> size(M)
ans =
     5     5
>> sum(M)
ans =
    0.8050    0.6975    0.6325    0.5050    0.5950
>> sum(ans)
ans =
    3.2350
楼主给的数据点太少,导致求曲顶柱体体积的此种运算需要插值法进行加点运算,我偷懒了,没有进行差值运算,毕竟忘了很久了,而且插值法有很多种(据我所知都有3-4种),运用在三维图形中就更麻烦了,所以只是用了楼主给出的25个数据点高程进行最最粗略的估算.
如果嫌此种方法太简单,只要数据够多或者插值法加点很多就可以对求高程的z数组进行编辑以获得更多的高程数据:
假设九个方格共十六个点,各点高程为z(i,j)各点为权重w(i,j)并假设16点权重和为1,则方格中心位置高程插值
Z(i,j)=sum(w(i,j)*z(i,j))九宫16点插值拟合法(16个空间高程点的加权平均,也称三次样条插值)
如果是两个曲面之间的距离,则可使用上面的体积元素之差作为曲顶柱体的高.
拟合完毕了就是照搬公式的体积求和运算:每个高程对应的xy面上的小方格乘以高程,然后对[高程*面积]所有元素求和,就能得到曲顶柱体的近似体积,插值越多,数据点越多,近似越精确!
总体来讲:思路很简单,但是过程复杂,所牵涉的知识比较多,