Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 15.10.2012, 21:10   #1
fenix0093
 
Регистрация: 11.07.2012
Сообщений: 5
Сообщение длина пересечения двух отрезков на прямой

даны координаты концов отрезка AB и CD. Следует написать программу, которая вычисляет длинну пересечения отрезков.

на ввод подаются 4 числа, координаты точек A,B,C,D
помогите разработать эффективный алгоритм, а то не хочется все 16 вариантов условиями перечислять.
fenix0093 вне форума Ответить с цитированием
Старый 15.10.2012, 21:23   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
длинну пересечения отрезков.
Можешь на рисунке показать что это за длина такая?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 15.10.2012, 21:39   #3
fenix0093
 
Регистрация: 11.07.2012
Сообщений: 5
По умолчанию

красным выделено расстояние, которое необходимо найти при данном расположении точек
Изображения
Тип файла: jpg 1.jpg (6.6 Кб, 400 просмотров)

Последний раз редактировалось fenix0093; 15.10.2012 в 22:08.
fenix0093 вне форума Ответить с цитированием
Старый 16.10.2012, 00:06   #4
Ashroren
Новичок
Джуниор
 
Регистрация: 14.10.2012
Сообщений: 2
По умолчанию

Код:
// a1,a2,b1,b2,c1,c2,d1,d2
не если тебе дано что четыре точки точно лежащих на 1й прямой 
то наити минимальное расстояние между точками 
 
 расстояние между двумя точками - квадратный корень из суммы квадратов абсолютных  разностей соответствующих координат))

можеш написать программу проверки на принадлежность к 1й прямой.
для этого составь уравнение для любых двух точек и  проверь принадлежность остальных двух к этой прямой

Последний раз редактировалось Ashroren; 16.10.2012 в 00:08.
Ashroren вне форума Ответить с цитированием
Старый 16.10.2012, 08:09   #5
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Длина=В-С
Не понимаю что тут решать?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 16.10.2012, 10:24   #6
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,719
По умолчанию

либо Д-А, либо 0
p51x вне форума Ответить с цитированием
Старый 16.10.2012, 22:18   #7
ViktorR
Старожил
 
Регистрация: 23.10.2010
Сообщений: 2,315
По умолчанию

Могу предложить такой алгоритм:
1. Получили X1, X2 и X3,X4:
Код:
readln(X1,X2);
readln(X3,X4);
2. Сортируем X1,X2, а затем X3,X4:
Код:
 if X1 > X2 then begin
      Tmp := X1 ;
      X1 := X2;
      X2 := Tmp;
   end;
  if X3 > X4 then begin
      Tmp := X3 ;
      X3 := X4;
      X4 := Tmp;
   end;
3. Сортируем X1 и X3:
Код:
 if X1 > X3 then begin
      A := X3; B := X4;
      C := X1; D := X2;
   end
   else begin
      A := X1; B := X2;
      C := X3; D := X4;
   end;
На этом шаге получили один из вариантов - рисунок, см. выше.
4. т.С может быть больше B или меньше. В первом случае - ноль, а во втором случае смотрим на т. D. Если она меньше B, то пересечение - вся прямая CD иначе, как на рисунке - B-C.

Как-то так ...
Как-то так, ...
ViktorR вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Точка пересечения отрезков Witaliy Помощь студентам 5 25.12.2011 13:15
Нахождение точек пересечения n-угольника c прямой(c\c++)). forever042 Помощь студентам 5 17.12.2011 02:57
Алгоритм подсчета количества точек пересечения отрезков juliaaaa Помощь студентам 2 24.02.2011 19:58
Нужно найти координаты точки пересечения двух отрезков в пространстве... Dima6120 Мультимедиа в Delphi 2 30.07.2010 13:36