Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.01.16;
Скачать: CL | DM;

Вниз

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

 
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;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.052 c
3-1103041948
Mars
2004-12-14 19:32
2005.01.16
Как получить значение поля предыдущей записи в базе,


1-1104239927
Anonimus
2004-12-28 16:18
2005.01.16
Картинки


4-1101693194
Laim
2004-11-29 04:53
2005.01.16
Запись в реестр из сервиса


3-1102684136
Rule
2004-12-10 16:08
2005.01.16
Вопрос простой, аж смешно по DBComboBox


14-1104388237
Чеширский_Кот
2004-12-30 09:30
2005.01.16
Верите ли вы...