Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Потрепаться";
Текущий архив: 2005.01.16;
Скачать: [xml.tar.bz2];

Вниз

помогите кто знает геометрию   Найти похожие ветки 

 
DillerXX ©   (2004-12-23 22:51) [0]

Даны два отрезка в трёхмерном пространстве (2 координаты точек для каждого отрезка), надо найти расстояние между ними (напомню что расстояние между двумя отрезками это минимум из расстояний между точками A и B, где точка A принадлежит первому отрезку, а точка B второму отрезку). Как это сделать? помогите кто-нибудь...


 
AlterEgo of WondeRu ©   (2004-12-23 23:32) [1]

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


 
palva ©   (2004-12-24 00:41) [2]

Ну это если не отрезки, а прямые. А отрезки могут быть сильно смещены вдоль прямой, на которой лежат, так что в этом случае расстояние будет расстоянием между какими-то концами.


 
pika ©   (2004-12-24 01:00) [3]


....
len:=sqrt(sqr(x1-x2)+sqr(y1-y2)+sqr(z1,z2));
....


 
pika ©   (2004-12-24 01:00) [4]


....
len:=sqrt(sqr(x1-x2)+sqr(y1-y2)+sqr(z1-z2));
....


 
марсианин ©   (2004-12-24 01:02) [5]

в терминах векторов. под вектором здесь буду понимать просто тройку чисел
вектора обозначаю заглавныи буквами, скаляры - незаглавными

0. пусть отрезки заданы точками A1 B1 и A2 B2 - соответственно
1. проводим прямые через отрезки. прямые заданы параметрически :
    X = L1*x + T1 - прямая через первый отрезок,
    X = L2*x + T2 - прямая через второй отрезок

   L1 = (A1 - B1)/|A1 - B1|     T1 = A1 - A1*L1
для второй прямой - аналогично..

2. получаем для каждой точки одномерные координаты на ее прямой    (т.е. х малое для каждой точки)

 xa1 = A1*L1       xb1 = B1*L1
 xa1 = A2*L2       xb2 = B2*L2

3. расстояние между 2-мя точками, лежащими на этих 2-х прямых, заданными 1-мерными координатами:
 d(x1, x2) = |X1 - X2| = |L1*x1 + T1 - L2*x2 - T2|

4. наша задача - найти минимум этой функции при условии, что
  x1 лежит в [ xa1, xb1], а x2 лежит в [ xa1, xb1]
  ищешь частные производные, находишь точку, где они в 0 обращаются

  сравниваешь значение функции d( . , . ) в этой точке со значениями на границе, выбираешь наименьшее

5. идешь пить пиво.

это кстати все не так уж и сложно.. главное - формулу вывести.


 
марсианин ©   (2004-12-24 01:06) [6]

единички с двойками кое-где напутал.. если есть вопросы - задавайте


 
WondeRu ©   (2004-12-24 09:03) [7]

pika ©   (24.12.04 1:00) [4]
len:=sqrt(sqr(x1-x2)+sqr(y1-y2)+sqr(z1-z2));


это евклидово расстояние между двумя точками, а сабж о расстоянии между отрезками, хотя... это частный случай (см. [2])


 
NeyroSpace ©   (2004-12-24 10:42) [8]

Если ты успешно прослушал курс вышки под названием "Линейная алгебра", то думаю настало время его прочитать.
Если вам не давали вышку в таком объеме, то прийдется изучать самому... Тогда начинать прийдется с определителей, а не с подраздела "Аналитическая геометрия".



Страницы: 1 вся ветка

Форум: "Потрепаться";
Текущий архив: 2005.01.16;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.46 MB
Время: 0.035 c
10-1080216496
Comwad
2004-03-25 15:08
2005.01.16
Два SmartAgent-a в одной подсети.


9-1096010438
Warchief
2004-09-24 11:20
2005.01.16
Произвольные текстурные координаты кадра в PD3


3-1102671790
Vlad2
2004-12-10 12:43
2005.01.16
Пропускается запись при навигации методом Next


3-1103184700
cad2206
2004-12-16 11:11
2005.01.16
Ошибка в SQL запросе?!


3-1102727909
Black
2004-12-11 04:18
2005.01.16
Как обновить ADOQuery





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский