【发布时间】:2014-06-25 04:35:55
【问题描述】:
我在 matlab 代码中将单位正方形定义为一个区域,并且我创建了随机大小的椭圆,所有椭圆都以单位正方形为中心。
但是,仅仅因为它们以单位正方形为中心并不意味着它们的所有区域都在单位正方形内。
我只想考虑单位正方形内的面积,所以我计算了每个随机生成的椭圆的总面积,但我不知道如何减去单位正方形外的面积。
这是我的代码中创建椭圆并计算其面积的部分:
a = rand(16,1);
totarea = zeros(1,16);
for i = 1:4:16
ellipse(a(i)/2,a(i+1)/2,a(i+2),a(i+3))
totarea(i) = pi*a(i)*a(i+1)/4;
end
b = find(totarea > 0);
totarea = totarea(b);
这是我生成的照片:
大正方形是单位正方形。该正方形的内部是我感兴趣的区域。如您所见,生成了覆盖该正方形的椭圆。我想找到正方形内每个椭圆的面积。
我上面生成的代码允许我计算每个椭圆的总面积,但是我需要减去出现在正方形之外的椭圆的面积,我不知道如何编写可以做到的代码那个。
【问题讨论】:
-
不确定你的意思。您能否提供一些您正在尝试做的事情的图表/插图(或链接)。
-
我更新了帖子以包含更详细解释的图
-
首先为什么你的函数
ellipse需要四个输入?通常一个椭圆是由两个变量定义的......那么你是如何定义“单位正方形”的?要获得这些椭圆的面积,您可以做的是:您可以说每个像素等于 x cm/mm/inch 您想要使用的任何单位。然后你可以计算椭圆内和“单位正方形”内的像素数。这不会产生确切的区域,但会产生真实的数据。查看"Riemann sums"。