`p1.X / p1.Y`

and `p2.X / p2.Y`

are both exactly 1.0, so the result of the difference of the `Atan`

values is 0.Fundamentally, you're calculating this incorrectly, try:

```
public static double GetAngleBetween(Point p1, Point p2)
{
double deltaX = (double)(p2.X - p1.X);
if (deltaX < 1e-10)
return Math.PI / 2.0;
return Math.Atan(((double)(p2.Y - p1.Y)) / deltaX);
}
```

Also, note that this returns the angle in

**radians counterclockwise**from the positive X direction with the origin at

`Point p1`

. To convert from radians to degrees multiply by `180 / π`

:```
double angle = GetAngleBetween(new Point(1, 1), new Point(2, 2)) * 180.0 / Math.PI;
angle = GetAngleBetween(new Point(0, 0), new Point(1, 2)) * 180.0 / Math.PI;
```

Are you still at school? Did not learn correspondent part of algebra and geometry?

—SA