Analytical intersection volume between two spheres

버전 1.3.0.0 (3.49 KB) 작성자: Guillaume JACQUENOT
Compute the overlap volume between 2 spheres defined in an array
다운로드 수: 2.5K
업데이트 날짜: 2009/9/10

라이선스 보기

Compute the overlap volume between 2 spheres defined in an array.
Computation is vectorized, and intersection volume are computed an
analytical way.

Input: spheres data presented in an array G of four columns.
G contains parameters of the n spheres
. G(1:n,1) - x-coordinate of the center of spheres,
. G(1:n,2) - y-coordinate of the center of spheres,
. G(1:n,3) - z-coordinate of the center of spheres,
. G(1:n,4) - radii of the spheres
Each row of the array contains the information for one sphere.

Input can also be provided in three different vectors. These
vectors can be row or column vectors. The 1st one corresponds to
x-coordinate of the center of spheres, the 2nd one to the
y-coordinate, the 3rd one to the z-coordinate and the 4th one to
the radii of the spheres.
An optional binary argument can be provided to display or not the
result.

Output: Square matrix M(n,n) containing intersection volumes between
spheres
M(i,j) contains the intersection volume between spheres i & j
By definition, M(i,i) corresponds to the volume of sphere i.

Examples:

x = [0,1,5,3,-5];
y = [0,4,3,7,0];
z = [0,4,3,7,0];
r = [1,5,3,2,2];
Display_solution = true;
disp('First call')
M = volume_intersect_sphere_analytical(x,y,z,r,Display_solution);
disp('Second call')
M = volume_intersect_sphere_analytical([x',y',z',r'],false);

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
For 2 spheres i & j, three cases are possible depending on the distance
d(i,j) of the centers of the spheres i and j.
Case 1: spheres i & j do not overlap, there is no overlap volume
M(i,j)=0;
Condition: d(i,j)>= ri+rj
M(i,j) = 0;
Case 2: spheres i & j fully overlap, the overlap volume has to be
computed.
Condition: d(i,j)<= abs(ri-rj)
M(i,j) = 4/3*pi*min(ri,rj).^3
Case 3: spheres i & j partially overlap, the overlap volume has to be
computed decomposing the overlap volume.

인용 양식

Guillaume JACQUENOT (2024). Analytical intersection volume between two spheres (https://www.mathworks.com/matlabcentral/fileexchange/18532-analytical-intersection-volume-between-two-spheres), MATLAB Central File Exchange. 검색됨 .

MATLAB 릴리스 호환 정보
개발 환경: R14
모든 릴리스와 호환
플랫폼 호환성
Windows macOS Linux
카테고리
Help CenterMATLAB Answers에서 Vector Volume Data에 대해 자세히 알아보기
도움

줌: MATLAB Pool

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!
버전 게시됨 릴리스 정보
1.3.0.0

I have added an input flag to display or not the results.

1.1.0.0

Small bug corrected

1.0.0.0

Correction of a graphical bug