如何在MATLAB中找到相互交叉的三个锥体的共同体积?

时间:2015-06-11 15:04:13

标签: matlab colors 3d intersection volume

我绘制了三个在一定高度相互交叉的锥体。我需要找出十字路口的常见音量,但我无法弄明白! MATLAB中是否有内置函数可以计算感兴趣的体积?我还要强调那个颜色更强的地区。有什么建议吗?

绘制的图片如下所示:

enter image description here

此致 TK

1 个答案:

答案 0 :(得分:0)

我将用类似的三重交叉点来说明原理,用圆柱代替两个锥体。 (另外,我没有回答关于着色的问题。请问每个问题一个问题。)

假设我想要锥体内的体积z = x ^ 2 + y ^ 2,圆柱体x ^ 2 +(z-2)^ 2 = 1,圆柱体y ^ 2 +(z-2)^ 2 =锥体仅从下面开始固定固体。圆柱可以从顶部和底部完成:求解z的方程给出两个值,顶部和底部。

点(x,y)上的实体的垂直尺寸可以是

#include <QSslSocket>

具体来说:

max(0, min(all tops) - max(all bottoms))

哪个输出5.3333。

请注意,vcone = @(x,y) sqrt(x.^2+y.^2); % cone, bottom only c1top = @(x,y) 2+sqrt(max(0,1-x.^2)); % 1st cylinder, top part c1bot = @(x,y) 2-sqrt(max(0,1-x.^2)); % 1st cylinder, bottom part c2top = @(x,y) 2+sqrt(max(0,1-y.^2)); % 2nd cylinder, top part c2bot = @(x,y) 2-sqrt(max(0,1-y.^2)); % 2nd cylinder, bottom part height = @(x,y) max(0, min(c1top(x,y),c2top(x,y)) - max(vcone(x,y),max(c1bot(x,y),c2bot(x,y)))); integral2(height, -1, 1, -1, 1) 用于防止Matlab获得复数,如果平方根的内容为负数。这很有用,因为积分的限制(上面的-1,1,-1,1)通常对应于投影到xy平面上的某个边界矩形,因此在这个矩形中,某些公式可能没有真正定义。例如,您可以使用

sqrt(max(0,...))

得到相同的结果,虽然当| x |时气缸的方程式分解或| y |超过1.