早教吧作业答案频道 -->其他-->
MATLAB 求一个凸多边形和一个圆的相交部分的面积用下图举例我的问题.比如,直角坐标系内,给定了凸角多边形顶点A、B、C、D、E的坐标(当然也有可能有更多顶点),已知圆2的圆心坐标和圆半
题目详情
MATLAB 求一个凸多边形和一个圆的相交部分的面积
用下图举例我的问题.
比如,直角坐标系内,给定了凸角多边形顶点A、B、C、D、E的坐标(当然也有可能有更多顶点),已知圆2的圆心坐标和圆半径r.求matlab代码,求出该凸角多边形和圆的相交部分的面积(圆心有可能落在多边形的内、边和外部)
用下图举例我的问题.
比如,直角坐标系内,给定了凸角多边形顶点A、B、C、D、E的坐标(当然也有可能有更多顶点),已知圆2的圆心坐标和圆半径r.求matlab代码,求出该凸角多边形和圆的相交部分的面积(圆心有可能落在多边形的内、边和外部)
▼优质解答
答案和解析
试试我编的这个程序.嘿嘿.思想跟spirit3772的相似,但其实这个比较简单的问题还用不到图形学的理论.
注意查看圆和多边形的显示状况,如果没能完全显示就需要把mesh_range这个参数调大一点.
这个程序对任意多边形都有效,包括凸多边形.
程序中的圆形圆心在(-1,2)半径r=1. 这些参数可以任意改.
网格点越多越精确,计算量也越大.
想要更加严格的完成这个计算,可以定义一个面积差值的收敛值,逐步提高网格点的密度,直到所求面积收敛为一个稳定值.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
clear
close all
%Define grid
mesh_range=5;
mesh_density=0.05;
x=-mesh_range:mesh_density:mesh_range;
[X,Y] = meshgrid(x,x);
%Define a circle
r=1;
oa=-1; ob=2;
t=0:0.01:2*pi;
a=r*sin(t)+oa;
b=r*cos(t)+ob;
plot(a,b)
in_circle = inpolygon(X,Y,a,b);
x_polygon = [0 1 -2 -3 4 3 0]; y_polygon = [0 1 2 -1 -4 -3 0];
hold on
plot(x_polygon,y_polygon);
hold off
in_polygon = inpolygon(X,Y,x_polygon,y_polygon);
in_both=in_circle & in_polygon;
figure
imshow(in_both)
figure
imshow(in_polygon)
figure
imshow(in_circle)
Area=sum(sum(in_both))*mesh_density^2
注意查看圆和多边形的显示状况,如果没能完全显示就需要把mesh_range这个参数调大一点.
这个程序对任意多边形都有效,包括凸多边形.
程序中的圆形圆心在(-1,2)半径r=1. 这些参数可以任意改.
网格点越多越精确,计算量也越大.
想要更加严格的完成这个计算,可以定义一个面积差值的收敛值,逐步提高网格点的密度,直到所求面积收敛为一个稳定值.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
clear
close all
%Define grid
mesh_range=5;
mesh_density=0.05;
x=-mesh_range:mesh_density:mesh_range;
[X,Y] = meshgrid(x,x);
%Define a circle
r=1;
oa=-1; ob=2;
t=0:0.01:2*pi;
a=r*sin(t)+oa;
b=r*cos(t)+ob;
plot(a,b)
in_circle = inpolygon(X,Y,a,b);
x_polygon = [0 1 -2 -3 4 3 0]; y_polygon = [0 1 2 -1 -4 -3 0];
hold on
plot(x_polygon,y_polygon);
hold off
in_polygon = inpolygon(X,Y,x_polygon,y_polygon);
in_both=in_circle & in_polygon;
figure
imshow(in_both)
figure
imshow(in_polygon)
figure
imshow(in_circle)
Area=sum(sum(in_both))*mesh_density^2
看了 MATLAB 求一个凸多边形...的网友还看了以下:
业务印章管理应坚持()的原则,启用前应进行登记,人员调换应办理交接手续。A.一章多用B.专人使用C. 2020-05-27 …
全国两会期间,环保问题成为年度热议的焦点,下列做法,不符合“低碳环保”的理念是A.生活中纸张双面使 2020-07-05 …
五户共井问题五户人家共用一口井,井深不超过10m,如果用A家的绳2条,B家的绳1条接长,正好抵达水 2020-07-10 …
except~exceptfor~besides我就区别一下这三个口语方面多用哪个的?书面语正式点 2020-07-22 …
一批零件甲单独做a时完成,比乙单独做多用b时.乙每时做30个,这批零件共多少个?甲每时做多少个?(要 2020-11-08 …
“请节约用水,否则最后一滴就是我们的眼泪”,不符合这句公益广告语倡导的是A.居家生活,一水多用B.节 2020-11-13 …
(2012•昭通)“低碳生活”是指节约资源,减少能源消耗,降低二氧化碳排放的新型生活方式.下列不符合 2020-11-14 …
节约能源,保护环境,下列做法或现象中需要改进的是()A.及时关掉未关紧的水龙头,尽量做到一水多用B. 2020-11-25 …
21世纪是“水的世纪”,人人都应该节约用水,下列不属于家庭节水的是()A.生活用水,一水多用B.使用 2020-12-09 …
“请节约用水,否则最后一滴就是我们的眼泪”,不符合这句公益广告语倡导的是A.居家生活,一水多用B.节 2020-12-23 …