不规则区域面积计算-Monte Carlo随机模拟和像素点法
前言
记录一下最近遇到的不规则图形面积计算问题,以及相应的解决方案。
背景:如图1所示,黑色大圆包围区域有三个同半径的小圆,假设大圆半径为R=400,圆心位于直角坐标系的(0,0),小圆半径均为Rc=200,圆1圆心为(-150,0),圆2圆心为(150,0),圆3圆心为(0,200)。我们的目标是计算图1中字母标注的圆内不相交区域的面积。
解决方案:使用了两种方法来计算。第一种是Monte Carlo 随机模拟,适用于已知数学表述的不规则 图形。第二种是Photoshop的像素点法,适用于已有不规则图形的面积等效计算。
Monte Carlo 随机模拟
Monte Carlo随机模拟方法适用于已知表达式的不规则区域面积计算或者二重积分计算。
方法:在大圆区域内进行大规模随机撒点,计算落到某一对应区域的点的数量,然后除以总体点数再乘以大圆面积piR^2即可。
**需要注意的是在圆形区域撒点同在矩形区域撒点不同。在极坐标系下theta在[0,2pi]服从均匀分布,而极径r的概率密度函数为f(r )=2*r/R^2, r belongs to [0,R]。**
%% 使用蒙特卡洛(Monte Carlo)方法估计不规则区域面积
%--by wdl 2020-1-13
% 适用于已知数学表述的不规则区域
clc;
clear all;
tic