12,067,652 members (49,783 online)
Rate this:
See more:
How to draw a polygon using mouse then after calculate its area using asp.net.
Posted 2-Feb-13 5:49am
Sandeep Mewara 2-Feb-13 12:02pm

1. You fail to share the language you are working on.
2. You fail to share what have you tried so far and where are you stuck?

Rate this:

## Solution 1

Ok, this isn't actually difficult, but you need to think about it, and do a few things.

If I assume you draw on a panel, then you need to set up a list of Point objects:
```private List<Point> polygon = null;
```
This will hold the polygon vertices as you create it.
You then need to handle the Panel.MouseClick event:
```private void myPolygonPanel_MouseClick(object sender, MouseEventArgs e)
{
if (polygon == null)
{
polygon = new List<Point>();
}
myPolygonPanel.Invalidate();
}
```
And the Paint event:
```private void myPolygonPanel_Paint(object sender, PaintEventArgs e)
{
if (polygon != null && polygon.Count > 1)
{
for (int i = 0; i < polygon.Count - 1; i++)
{
e.Graphics.DrawLine(Pens.Red, polygon[i], polygon[i + 1]);
}
}
}
```
Calculating the area is another matter: this is a simple Brute-Force-and-Ignorance method converted from C++
```double GetArea(List<Point> polygon)
{
double area = 0.0;
for (int i = 0; i < polygon.Count; i++)
{
int j = (i + 1) % polygon.Count;
area += polygon[i].X * polygon[j].Y;
area -= polygon[i].Y * polygon[j].X;
}
area /= 2;
if (area < 0)
{
area = -area;
}
return area;
}
```
You may want to be a little more intelligent! Wiki can probably help you.

Top Experts
Last 24hrsThis month
 OriginalGriff 337 Dave Kreskowiak 310 CHill60 256 Sascha Lefèvre 225 Richard MacCutchan 195
 Dave Kreskowiak 2,111 Richard MacCutchan 1,455 OriginalGriff 1,451 CPallini 992 d@nish 980