Общая точка. Два отрезка на плоскости заданы координатами своих концов. Определить, имеют ли эти отрезки общие точки - C#

Узнай цену своей работы

Формулировка задачи:

Помогите до ума довести Общая точка. Два отрезка на плоскости заданы координатами своих концов. Определить, имеют ли эти отрезки общие точки
Листинг программы
  1. double Q(Point a, Point b, Point t) {
  2. return t.x*(b.y-a.y)+t.y*(a.x-b.x)+a.y*b.x-a.x*b.y;
  3. }
  4. string res = "не пересекаются";
  5. Point a,b, A,B;
  6. int x1_ab,y1_ab,x2_ab,y2_ab,x1_AB,y1_AB,x2_AB,y2_AB;
  7. a=new Point(x1_ab,y1_ab);
  8. b=new Point(x2_ab,y2_ab);
  9. A=new Point(x1_AB,y1_AB);
  10. B=new Point(x2_AB,y2_AB);
  11. if (Q(a,b;A)*Q(a,b;B)<0 && Q(A,B;a)*Q(A,B;b)<0)
  12. res = "пересекаются";

Решение задачи: «Общая точка. Два отрезка на плоскости заданы координатами своих концов. Определить, имеют ли эти отрезки общие точки»

textual
Листинг программы
  1. {
  2.  return t.x*(b.y-a.y)+t.y*(a.x-b.x)+a.y*b.x-a.x*b.y;
  3. }
  4.  
  5. string res = "не имеют общие точки";//результат нашей проверки
  6.  
  7. 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;
  8.  
  9.     Console.Write("Первый отрезок AB\n");
  10.     Console.Write("Введите координату Х для точки A: ");
  11.     x1_AB = Convert.ToInt32(Console.ReadLine());
  12.     Console.Write("Введите координату Y для точки A: ");
  13.     y1_AB = Convert.ToInt32(Console.ReadLine());
  14.     Console.Write("Введите координату Х для точки B: ");
  15.     x2_AB = Convert.ToInt32(Console.ReadLine());
  16.     Console.Write("Введите координату Y для точки B: ");
  17.     y2_AB = Convert.ToInt32(Console.ReadLine());
  18.  
  19.     Console.Write("Первый отрезок CD\n");
  20.     Console.Write("Введите координату Х для точки C: ");
  21.     x1_CD = Convert.ToInt32(Console.ReadLine());
  22.     Console.Write("Введите координату Y для точки C: ");
  23.     y1_CD = Convert.ToInt32(Console.ReadLine());
  24.     Console.Write("Введите координату Х для точки D: ");
  25.     x2_CD = Convert.ToInt32(Console.ReadLine());
  26.     Console.Write("Введите координату Y для точки D: ");
  27.     y2_CD = Convert.ToInt32(Console.ReadLine());
  28.  
  29. Points A = new Points(x1_AB, y1_AB);
  30. Points B = new Points(x2_AB, y2_AB);
  31. Points C = new Points(x1_CD, y1_CD);
  32. Points D = new Points(x2_CD, y2_CD);
  33.  
  34. 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))
  35. res = "имеют общие точки";
  36.  
  37. Console.Write("Отрезки AB и CD " + res+"\n");
  38.         }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

14   голосов , оценка 3.786 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы