1. Заголовок темы должен быть информативным. В противном случае тема удаляется ... 
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения. 
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали! 
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
| killer on the road | 
                        
			
			  
			
				 Сообщение
					#1				
			 
		 | 
	
| 
        	
        		 Гость  | 
       
			
			 В плоскости, даны два треугольника. Требуется определить кратчайшее растояние между их сторонами. 
			
			
					
		Пока у меня есть только идея тупого перебора. Находим формулы описывающие каждую сторону, проходим циклом по всем Х, попутно генерируя У, и сравниваем с таким же циклом для второго треугольника. Получается очень много сравнений. Может есть какая нибудь хитрая идея?  | 
	
![]() ![]()  | 
	
| Altair | 
                        
			
			  
			
				 Сообщение
					#2				
			 
		 | 
	
        	
        		![]() Ищущий истину ![]() ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 4 825 Пол: Мужской Реальное имя: Олег Репутация:    45           	 | 
       
			
			 Алгоритм. (если треугольники не пересекаются) 
			
			i=1 1. берем i точку и находим координаты точек пересечения высот проведенных от i точки до каждой из сторон другого треугольника. (*) Выбираем минимум из 3 длин. 2. i=i+1, перейти на 1. Как найти точку пересечения высоты проведенной из точки i-M(x0,y0) до стороны l ? Для этого надо найти коэффициенты уравнения стороны l (A, B,C) L: Ax+By+C и найти координаты точки пересечения p по формуле: x= x0+at где параметр t = - (Ax0+By0+C)/(A^2 +B^2); Как найти уравнение стороны, зная координаты 2 точек? пусть дана точка M1(x1,y1) и точка M2(x2,y2), принадлежащие L, тогда : L: (x-x1)/(x2-x1) = (y-y1)/(y2-y1) P.S. здесь (*) надопроверить лежат ли точки пересечения на сторне иди выходят за пределы отрезка. Сообщение отредактировано: Oleg_Z - -------------------- Помогая друг другу, мы справимся с любыми трудностями! 
					
		"Не опускать крылья!" (С)  | 
	
 killer on the road   Кратчайшее растояние   26.06.2005 22:00
 
 klem4   а точно надо определить кратчайшее расстояние межд…   26.06.2005 22:07
 
 Altair   Какая разница между чем? у нас всена плоскости про…   26.06.2005 22:33
 
 klem4   
 :no:  неправда.
может быть случай, когда кратч…   26.06.2005 22:40
 
 volvo   klem4, опровержение - в студию...  :)
Oleg_Z имел…   26.06.2005 22:42
 
 Altair   klem4, если ты не прав, ты покупаешь мне 2 пива…   26.06.2005 22:44
 
 klem4   Volvo, написано 
Но я как раз имел в виду вариант…   26.06.2005 22:46
 
 Altair   
все равно я прав! :P
пиво ты покупаешь!   26.06.2005 22:49
 
 killer on the road   Господа, всё это конечно интересно, но может кто н…   26.06.2005 23:10
 
 Altair   
Можно перебрать для начала сторны и проверить на …   26.06.2005 23:17
 
 killer on the road   
Смысла-то, оно конечно нет. Просто, по условию за…   26.06.2005 23:28
 
 Altair   
[b]Как проверить пересекаются ли 2 отрезка?
[url=…   26.06.2005 23:36
 
 killer on the road   Люди, ай нид хелп!
Пытался сделать по материал…   28.06.2005 5:16
 
 Malice   
Короче, так. У тебя 3 вариана самого короткого р…   28.06.2005 15:01
 
 killer on the road   очень извиняюсь за тупость, а можно полный текст п…   28.06.2005 23:48
 
 Malice   
Ну лови, 2 варианта вершина-вершина и вершина-гра…   29.06.2005 18:39![]() ![]()  | 
	
 
  | 
		Текстовая версия | 4.11.2025 20:16 |