我绘制了三个在一定高度相互交叉的锥体。我需要找出十字路口的常见音量,但我无法弄明白! MATLAB中是否有内置函数可以计算感兴趣的体积?我还要强调那个颜色更强的地区。有什么建议吗?
绘制的图片如下所示:
此致 TK
答案 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.