area of intersection between a circle and polygon
    11 views (last 30 days)
  
       Show older comments
    
    Ananya Malik
 on 3 Sep 2018
  
    
    
    
    
    Commented: Adam Fleetwood
 on 6 Dec 2020
            x = 0;y = 0; r = 0.5;  
th = 0:pi/50:2*pi;
xunit = r * cos(th) + x;
yunit = r * sin(th) + y;
h = plot(xunit, yunit);
poly1 = polyshape([0 0 1 1],[1 0 0 1]);
plot(poly1)
I want to find the area of intersection (in units) between a circle and polygon as given above. Any help would be greatly appreciated. TIA.
0 Comments
Accepted Answer
  Akira Agata
    
      
 on 3 Sep 2018
        One possible way is generating intersection by intersect function, and calculate it's area by area function. The following is an example.
x = 0; y = 0; r = 0.5;  
th = 0:pi/50:2*pi;
xunit = r * cos(th) + x;
yunit = r * sin(th) + y;
poly0 = polyshape(xunit(1:end-1),yunit(1:end-1));
poly1 = polyshape([0 0 1 1],[1 0 0 1]);
poly2 = intersect(poly0,poly1);
area(poly2)
The result is:
>> area(poly2)
ans =
  0.1962
4 Comments
  Adam Fleetwood
 on 6 Dec 2020
				I have tried using something similar for a project, but am getting an error that states, "unable to use a value of type polyshape as an index'. I tried using this exact code shown above, and still got that error. Any idea why?
More Answers (0)
See Also
Categories
				Find more on Elementary Polygons in Help Center and File Exchange
			
	Products
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!