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

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.51 MB
Время: 0.041 c
15-1199808776
VAD*Anti Gopn!k
2008-01-08 19:12
2008.02.10
NVIDIA 7600GS


2-1200312837
Washington
2008-01-14 15:13
2008.02.10
Прорисовка PopupMenu


15-1199611199
sauron
2008-01-06 12:19
2008.02.10
Праздники!


6-1180070636
AHTOLLlKA
2007-05-25 09:23
2008.02.10
HTTPS запрос


2-1200213662
Kotov
2008-01-13 11:41
2008.02.10
Своё приложение вместо bat-файла- Возможно?





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