using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
var ucgen = new Ucgen(new Nokta(3, 3), new Nokta(8, 1), new Nokta(12, 0));
List<Nokta> noktalar = new List<Nokta>
{
new Nokta(3,3),
new Nokta(0,0),
new Nokta(12,1),
new Nokta(3,4)
};
foreach (var item in noktalar)
{
if (UcgeninIcindemi(ucgen, item))
Console.WriteLine("içinde");
else
Console.WriteLine("İçinde değil");
}
Console.ReadLine();
}
static bool AyniTaraftami(Isin isin, Nokta n1, Nokta n2)
{
return
((isin.B.X - isin.A.X) * (n1.Y - isin.A.Y) - (isin.B.Y - isin.A.Y) * (n1.X - isin.A.X) >= 0) &&
((isin.B.X - isin.A.X) * (n2.Y - isin.A.Y) - (isin.B.Y - isin.A.Y) * (n2.X - isin.A.X) >= 0);
}
static bool UcgeninIcindemi(Ucgen ucgen, Nokta n)
{
return
(AyniTaraftami(new Isin(ucgen.A, ucgen.B), n, ucgen.C)) &&
(AyniTaraftami(new Isin(ucgen.B, ucgen.C), n, ucgen.A)) &&
(AyniTaraftami(new Isin(ucgen.C, ucgen.A), n, ucgen.B));
}
}
class Nokta
{
public double X { get; set; }
public double Y { get; set; }
public Nokta(double x, double y)
{
X = x;
Y = y;
}
}
class Isin
{
public Nokta A { get; set; }
public Nokta B { get; set; }
public Isin(Nokta a, Nokta b)
{
A = a;
B = b;
}
}
class Ucgen
{
public Nokta A { get; set; }
public Nokta B { get; set; }
public Nokta C { get; set; }
public Ucgen(Nokta a, Nokta b, Nokta c)
{
A = a;
B = b;
C = c;
}
}
}