Главная страница
    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.038 c
9-1096272516
Werwolf
2004-09-27 12:08
2005.01.16
Вопрос ко всем игроделам


9-1096094110
Goblin V
2004-09-25 10:35
2005.01.16
Смена видеорежима при переходе на другое приложение без закрытия


1-1104601121
ivane
2005-01-01 20:38
2005.01.16
vector


1-1104750616
kirilllius
2005-01-03 14:10
2005.01.16
Delphi 7


14-1103972302
начинающий_
2004-12-25 13:58
2005.01.16
Сетевые приложения





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский