[問題] 如何以matlab計算多面體convex hull體積?已回收
因非理工科系 故不太會使用matlab
請問有沒有大大知道
如何以matlab計算在三維空間中的數個點所圍成的polyhedral的體積?
假設空間中有四個點 所圍成的四面體(tetrahedral) 如何計算體積?
x y z
0 0 0
2 0 0
0 2 0
0 0 2
以上空間中之四點
有google到以下的convex hull公式 但不太會使用 @@?
可否有大大可以教一下
感激不盡!!!!!
http://zzb.bz/MlXXb
function [volume,area]=area3d(v)
% compute volume and area of a convex hull of points v
% Malcolm A. MacIver, 2003
[K volume]=convhulln(v);
%
% Basic formula for computing triangle area
% || = 2-norm, VN = vertex of triangle
% ||V1 X V2 + V2 X V3 + V3 X V1||/2
area= ...
sum(sqrt(sum(( ...
[v(K(:,1),2).*v(K(:,2),3) - v(K(:,1),3).*v(K(:,2),2) ...
v(K(:,1),3).*v(K(:,2),1) - v(K(:,1),1).*v(K(:,2),3) ...
v(K(:,1),1).*v(K(:,2),2) - v(K(:,1),2).*v(K(:,2),1)] + ...
[v(K(:,2),2).*v(K(:,3),3) - v(K(:,2),3).*v(K(:,3),2) ...
v(K(:,2),3).*v(K(:,3),1) - v(K(:,2),1).*v(K(:,3),3) ...
v(K(:,2),1).*v(K(:,3),2) - v(K(:,2),2).*v(K(:,3),1)] + ...
[v(K(:,3),2).*v(K(:,1),3) - v(K(:,3),3).*v(K(:,1),2) ...
v(K(:,3),3).*v(K(:,1),1) - v(K(:,3),1).*v(K(:,1),3) ...
v(K(:,3),1).*v(K(:,1),2) - v(K(:,3),2).*v(K(:,1),1)]).^2,2))) ...
/2;
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.112.55.166
※ 編輯: Kristbb 來自: 140.112.55.166 (03/23 23:46)