- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
Console.Write("Введите координату Xm: ");
double Xm = Convert.ToDouble(Console.ReadLine());
Console.Write("Введите координату Ym: ");
double Ym = Convert.ToDouble(Console.ReadLine());
Console.Write("Введите координату Xa: ");
double Xa = Convert.ToDouble(Console.ReadLine());
Console.Write("Введите координату Ya: ");
double Ya = Convert.ToDouble(Console.ReadLine());
Console.Write("Введите координату Xb: ");
double Xb = Convert.ToDouble(Console.ReadLine());
Console.Write("Введите координату Yb: ");
double Yb = Convert.ToDouble(Console.ReadLine());
Console.Write("Введите координату Xc: ");
double Xc = Convert.ToDouble(Console.ReadLine());
Console.Write("Введите координату Yc: ");
double Yc = Convert.ToDouble(Console.ReadLine());
if (
((((Xb - Xa) * Ym + (Xa * Yb - Xb * Ya) - (Yb - Ya) * Xm <= 0) && ((Xb - Xa) * Yc + (Xa * Yb - Xb * Ya) - (Yb - Ya) * Xc <= 0))
|| (((Xb - Xa) * Ym + (Xa * Yb - Xb * Ya) - (Yb - Ya) * Xm >= 0) && ((Xb - Xa) * Yc + (Xa * Yb - Xb * Ya) - (Yb - Ya) * Xc >= 0)))
&& ((((Xc - Xa) * Ym + (Xa * Yc - Xc * Ya) - (Yc - Ya) * Xm <= 0) && ((Xc - Xa) * Yb + (Xa * Yc - Xc * Ya) - (Yc - Ya) * Xb <= 0))
|| (((Xc - Xa) * Ym + (Xa * Yc - Xc * Ya) - (Yc - Ya) * Xm >= 0) && ((Xc - Xa) * Yb + (Xa * Yc - Xc * Ya) - (Yc - Ya) * Xb >= 0)))
&& ((((Xc - Xb) * Ym + (Xb * Yc - Xc * Yb) - (Yc - Yb) * Xm <= 0) && ((Xc - Xb) * Ya + (Xb * Yc - Xc * Yb) - (Yc - Yb) * Xa <= 0))
|| (((Xc - Xb) * Ym + (Xb * Yc - Xc * Yb) - (Yc - Yb) * Xm >= 0) && ((Xc - Xb) * Ya + (Xb * Yc - Xc * Yb) - (Yc - Yb) * Xa >= 0)))
) Console.WriteLine("Точка ({0}, {1}) входит в треугольник", Xm, Ym);
else Console.WriteLine("Точка ({0}, {1}) не входит в треугольник", Xm, Ym);
Console.ReadKey();
Может инлайн векторного произведения за компилятор решили сделать?)