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

Вниз

Длина взаимного перекрытия двух отрезков   Найти похожие ветки 

 
NaNo   (2008-01-04 22:16) [0]

Есть два параллельных отрезка на плоскости.

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

уважаемые мастера и знатоки геометрии помогите пожалуйста!


 
Johnmen ©   (2008-01-04 22:30) [1]

Знатоки и мастера такой геометрии учатся в третьем классе общеобразовательной школы.
Туда и следует обращаться.


 
palva ©   (2008-01-04 23:52) [2]

А разве параллельные отрезки могут перекрываться?


 
Джо ©   (2008-01-04 23:55) [3]

> [2] palva ©   (04.01.08 23:52)
> А разве параллельные отрезки могут перекрываться?

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


 
antonn ©   (2008-01-05 00:15) [4]

перекрещивающихся типа? или как эти сказать то..


 
korneley ©   (2008-01-05 01:37) [5]


> перекрещивающихся типа?


> Есть два параллельных отрезка на плоскости.

Джо, имхо, более верно стелепатировал. Но тут такое море вариантов открывается, что без доп. стакана (пояснений) от автора - не разобраться. :)


 
Юрий Зотов ©   (2008-01-05 01:44) [6]

> NaNo   (04.01.08 22:16)

Что-то типа этого, но проверяйте сами (потому что я особо не думал, может быть и неверно).

uses
 Math;

{
x11,y11*---------------*x12,y12
       x21,y21*---------------*x22,y22
}
function Len(X11, X12, X21, X22, Y11, Y12, Y21, Y22: extended): extended;
begin
 Result := Sqrt(
   Sqr(Max(0, Min(X12, X22) - Max(X11, X21)))
   +
   Sqr(Max(0, Min(Y12, Y22) - Max(Y11, Y21)))
 )
end;


 
Германн ©   (2008-01-05 01:45) [7]


> Но тут такое море вариантов открывается, что без доп. стакана
> (пояснений) от автора - не разобраться. :)
>

Одного стакана не хватит. А для нужного количества стаканов - огурцов не хватит :(


 
korneley ©   (2008-01-05 01:56) [8]


> Юрий Зотов ©   (05.01.08 01:44) [6]

Пифагор, конечно, голова :))) Но это один частный случай, а вот чего хотел автор конкретно - не понятно. А вдруг отрезки действительно на разных параллельных линиях, а проекция перпендикулярна? Тогда вообще две точки получим. Непересекающиеся %)


 
Юрий Зотов ©   (2008-01-05 02:01) [9]

> korneley ©   (05.01.08 01:56) [8]

> а проекция перпендикулярна?

Проекция чего на что?
Перпендикулярна чему?


 
korneley ©   (2008-01-05 02:05) [10]


> Проекция чего на что?Перпендикулярна чему?

Проекция линий на линию же. Но перпендикулярную первым двум, которые параллельны между собой. Вроде ничего не напутал.


 
Германн ©   (2008-01-05 02:06) [11]


> Юрий Зотов ©   (05.01.08 02:01) [9]

А в сабже нет ни слова о проекциях на что-то. Вот это и смущает, поскольку хз что автору нужно. Если отрезки всего лишь параллельны, то всё зависит от "угла зрения" :)


 
korneley ©   (2008-01-05 02:09) [12]


> Германн ©   (05.01.08 02:06) [11]

Дык, и я о том же.


 
Юрий Зотов ©   (2008-01-05 02:20) [13]

> взаимного перекрытия

Значит, речь идет о взаимной проекции ([3]).


 
Германн ©   (2008-01-05 02:23) [14]


> korneley ©   (05.01.08 02:09) [12]
>
>
> > Германн ©   (05.01.08 02:06) [11]
>
> Дык, и я о том же.
>

Дык и первый, кто включил свой телепатор в
> Джо ©   (04.01.08 23:55) [3]
тоже о том же высказался.
Суть в том, что автор сабжа кинул свой вопрос и смылся. (А может подглядывает из-за угла).


 
Германн ©   (2008-01-05 02:38) [15]


> Юрий Зотов ©   (05.01.08 02:20) [13]
>
> > взаимного перекрытия
>
> Значит, речь идет о взаимной проекции ([3]).
>

Скорее всего и наверно так и есть. Но "проекции" на что? Ведь Джо ©   (04.01.08 23:55) [3] именно на это и намекал.


 
Юрий Зотов ©   (2008-01-05 02:44) [16]

> Германн ©   (05.01.08 02:38) [15]

> "проекции" на что?

Слово "взаимной" означает "друг на друга".


 
Johnmen ©   (2008-01-05 02:49) [17]

Предлагаю развернуть полноценную научную дискуссию по этому непростому аспекту ГЕОМЕТРИИ.
Сначала выберем президиум.

Ваши предложения...


 
Германн ©   (2008-01-05 02:55) [18]


> Юрий Зотов ©   (05.01.08 02:44) [16]
>
> > Германн ©   (05.01.08 02:38) [15]
>
> > "проекции" на что?
>
> Слово "взаимной" означает
> "друг на друга"



Да. Возможно это слово "это" и означает. Ну а угол? Под каким углом нужно проецировать "друг на друга"?


 
Германн ©   (2008-01-05 03:07) [19]


> Юрий Зотов ©   (05.01.08 02:44) [16]
>
> > Германн ©   (05.01.08 02:38) [15]
>
> > "проекции" на что?
>
> Слово "взаимной" означает "друг на друга".
>

Или это стандартный термин?


 
Юрий Зотов ©   (2008-01-05 03:08) [20]

> Германн ©   (05.01.08 02:55) [18]

> Под каким углом нужно проецировать "друг на друга"?

"Проецировать" означает - под прямым.


 
Германн ©   (2008-01-05 03:15) [21]


> Юрий Зотов ©   (05.01.08 03:08) [20]
>
> > Германн ©   (05.01.08 02:55) [18]
>
> > Под каким углом нужно проецировать "друг на друга"?
>
> "Проецировать" означает - под прямым.
>

Юра. Давай подождём автора.
Ведь "под прямым" - это отмазка :)
Под прямым углом к чему?
Твой пример [6] пока является единственным.


 
Джо ©   (2008-01-05 03:39) [22]

Лично я понял автора так:
http://unclejoe.ho.com.ua/img/par.PNG
(красное — искомый отрезок).
Автор, я прав? подкорректируй, а то тут насочинять горазды и я впереди всех :)


 
NaNO   (2008-01-05 09:20) [23]

Да, именно так.

мне было нужно самому нарисовать такой рисунок.

моя идея - развернуть отрезки парралельно оси абсцисс, а дальше кажеться все просто - проецируем оба отрезка на ось и анализируем точки.


 
Юрий Зотов ©   (2008-01-05 09:49) [24]

> Германн ©   (05.01.08 03:15) [21]

> Под прямым углом к чему?

Как кого, а меня учили, что к тому, на что проецируешь.

> NaNO   (05.01.08 09:20) [23]

Это один способ (только это называется поворотом системы координат, а не отрезков). Похожий способ - переход к полярной системе координат. Третий способ - [6] (спроецировать отрезки на обе оси без всяких поворотов; тогда после анализа точек искомая длина вычисляется по теореме Пифагора).


 
NaNO   (2008-01-05 12:31) [25]

способ [6] дает неверный результат :(


 
Anatoly Podgoretsky ©   (2008-01-05 12:50) [26]

> Германн  (05.01.2008 01:45:07)  [7]

Василий Иванович так и сказал, где столько огурцов взять.


 
Юрий Зотов ©   (2008-01-05 13:26) [27]

> NaNO   (05.01.08 12:31) [25]

> способ [6] дает неверный результат :(

Неверный результат дает не способ, а конкретный код его реализации. Потому что код этот - неправильный (о чем и было сказано). Собственно, написать правильный код я и не стремился, а хотел только показать идею. Если же подумать и ошибки исправить, то все должно быть ОК (о чем тоже было сказано).


 
White   (2008-01-05 22:39) [28]

Нда, я смотрю тут одни знатоки...

> NaNO

1) Берёшь первую точку первого отрезка - это одна из точек плоскости, и первый отрезок - это нормальный вектор, получаешь плоскость
2) Находишь расстояния до полученной плоскости от второй точки первого отрезка (A), и от обоих точек второго отрезка (B и C), получаешь два числовых диапазона - (0..A) и (B..C)
3) Находишь пересечение этих диапазонов, если оно есть - это и будет длиной :)


 
A   (2008-01-06 20:53) [29]

Проще через скалярное произведение векторов:
http://link.imgshare.us/16gPEX



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

Текущий архив: 2008.02.10;
Скачать: CL | DM;

Наверх




Память: 0.54 MB
Время: 0.022 c
1-1193828867
Stark
2007-10-31 14:07
2008.02.10
Delphi 2007: Глюки тулбара


4-1183388569
Углук
2007-07-02 19:02
2008.02.10
Xук на сообщение WM_SYSCOMMAND:SC_MAXIMIZE


15-1199691637
kernel
2008-01-07 10:40
2008.02.10
С чего начать?


15-1199134940
Anatoly Podgoretsky
2008-01-01 00:02
2008.02.10
С Новым Годом!


2-1198758279
Helen
2007-12-27 15:24
2008.02.10
BDE Error 8453