Общая точка. Два отрезка на плоскости заданы координатами своих концов. Определить, имеют ли эти отрезки общие точки - C#
Формулировка задачи:
Помогите до ума довести
Общая точка. Два отрезка на плоскости заданы координатами своих концов. Определить, имеют ли эти отрезки общие точки
double Q(Point a, Point b, Point t) { return t.x*(b.y-a.y)+t.y*(a.x-b.x)+a.y*b.x-a.x*b.y; } string res = "не пересекаются"; Point a,b, A,B; int x1_ab,y1_ab,x2_ab,y2_ab,x1_AB,y1_AB,x2_AB,y2_AB; a=new Point(x1_ab,y1_ab); b=new Point(x2_ab,y2_ab); A=new Point(x1_AB,y1_AB); B=new Point(x2_AB,y2_AB); if (Q(a,b;A)*Q(a,b;B)<0 && Q(A,B;a)*Q(A,B;b)<0) res = "пересекаются";
Решение задачи: «Общая точка. Два отрезка на плоскости заданы координатами своих концов. Определить, имеют ли эти отрезки общие точки»
textual
Листинг программы
{ return t.x*(b.y-a.y)+t.y*(a.x-b.x)+a.y*b.x-a.x*b.y; } string res = "не имеют общие точки";//результат нашей проверки int x1_AB=0,y1_AB=0,x2_AB=0,y2_AB=0,x1_CD=0,y1_CD=0,x2_CD=0,y2_CD=0; Console.Write("Первый отрезок AB\n"); Console.Write("Введите координату Х для точки A: "); x1_AB = Convert.ToInt32(Console.ReadLine()); Console.Write("Введите координату Y для точки A: "); y1_AB = Convert.ToInt32(Console.ReadLine()); Console.Write("Введите координату Х для точки B: "); x2_AB = Convert.ToInt32(Console.ReadLine()); Console.Write("Введите координату Y для точки B: "); y2_AB = Convert.ToInt32(Console.ReadLine()); Console.Write("Первый отрезок CD\n"); Console.Write("Введите координату Х для точки C: "); x1_CD = Convert.ToInt32(Console.ReadLine()); Console.Write("Введите координату Y для точки C: "); y1_CD = Convert.ToInt32(Console.ReadLine()); Console.Write("Введите координату Х для точки D: "); x2_CD = Convert.ToInt32(Console.ReadLine()); Console.Write("Введите координату Y для точки D: "); y2_CD = Convert.ToInt32(Console.ReadLine()); Points A = new Points(x1_AB, y1_AB); Points B = new Points(x2_AB, y2_AB); Points C = new Points(x1_CD, y1_CD); Points D = new Points(x2_CD, y2_CD); if ((my(A,B,C)*my(A,B,D)<0 && my(C,D,A)*my(C,D,B)<0)||(A.x==C.x && A.y==C.y && B.x==D.x && B.y==D.y)) res = "имеют общие точки"; Console.Write("Отрезки AB и CD " + res+"\n"); }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д