How Can You Calculate the Area of a Polygon in MATLAB?

  • Thread starter Thread starter StephvsEinst
  • Start date Start date
  • Tags Tags
    Matlab
AI Thread Summary
To calculate the area of a polygon in MATLAB, a function can be created that takes the number of vertices as input and uses the determinant method to compute the area by dividing the polygon into triangles. The function prompts the user to input the coordinates of each vertex, ensuring that at least three vertices are provided to form a valid polygon. The area is calculated iteratively by updating a matrix that stores the coordinates of the vertices and applying the determinant formula for each triangle formed. A common error in the discussion was the confusion between the terms "polygon" and "polynomial," which was humorously acknowledged. The final solution successfully computes the area based on user input for the vertices.
StephvsEinst
Science Advisor
Messages
41
Reaction score
1

Homework Statement


H[/B]ow to create a function to determine the area of a polynomial that has N vertexes in MATLAB?

Homework Equations


p = input('Introduce the number of vertexes of the polynomial:')
n=p-2;

The polynomial can be devided by N-2 triangles and the area of each triangle is given by A=(1/2)*det(B) where B=[x1 x2 x3 ... xn; y1 y2 y3 ... yn; 1 1 1 1 1 ... 1(last row is filled with n ones)]

The Attempt at a Solution


p = input('Introduce the number of vertexes of the polynomial:')
n=p-2;
if n<3:
fprintf('error')
else
(...) - I tried 'if cicles' and sums but I don't know know how to ask for all x and y of the polynomial vertexes (because the size of the matrix varies with the number of vertexes of the polynomial).

Would apreciate any kind of help :D
 
Physics news on Phys.org
You have to ask all the coordinates of the vertexes
 
Already solved it:

function p = area_polinomio(N)
i=1;
area = 0;
A = [0,0,0;0,0,0;0,0,0];
if N < 3
warning('pontos insuficientes')
return
else
a = [input('introduza a abcissa do primeiro ponto: '); input('\n introduza a ordenada do primeiro ponto: '); 1];
for i = 1 : N-1
b = [input('\n introduza a abcissa do ponto seguinte: '); input('\n introduza a ordenada do ponto seguinte: '); 1];
if i == 1
A = [a, b];
end
if i == 2
A = [A, b];
area = area + (1/2)*det(A);
end
if i > 2
A = A(:,[1:1,3,3:2,2,4:end]);
A = A(1:3,1:2);
A = [A, b];
area = area + (1/2)*det(A);
end

i = i+1;
end
end
%A

Thanks.
 
The word you're searching for is polygon, a two-dimensional figure with three or more straight sides that intersect at the vertices of the polygon. Triangles, rectangles, and hexagons are examples of polygons.

A polynomial is an expression made up of sums of integer powers of the variable. For example, f(x) = 2x + 3, g(x) = x2 - 3x + 2, and h(x) = x4 - 1 are polynomial functions of degree 1, 2, and 4 respectively.
 
LOOOL. That made me laugh xD
A silly misake made by me. Acually when I was solving this I named the function area_polynomial and not area_polygon until it was time to run it, then I changed the name. Was completely focused on the exercise xD
 
Are you from Portugal or Brazil? I'm just curious...
 
Portugal :)
 
Back
Top