public float X {get; private set;}
public float Y {get; private set;}
public Point(float x, float y)
public static void Main()
Point pt = new Point(1,1);
Point p1 = new Point(0,0);
Point p2 = new Point(0,3);
Point p3 = new Point(4,0);
Console.WriteLine(PointInTriangle(pt,p1,p2,p3));
static float sign (Point p1, Point p2, Point p3)
return (p1.X - p3.X) * (p2.Y - p3.Y) - (p2.X - p3.X) * (p1.Y - p3.Y);
static bool PointInTriangle (Point pt, Point v1, Point v2, Point v3)
has_neg = (d1 < 0) || (d2 < 0) || (d3 < 0);
has_pos = (d1 > 0) || (d2 > 0) || (d3 > 0);
return !(has_neg && has_pos);