Отправляет email-рассылки с помощью сервиса Sendsay

Программирование. Форум !!!

За 2004-02-21

Re[2]: Площадь многоугольника

Доброго времени суток, Sn.

Saturday, February 21, 2004, 11:18:18 AM, писали:

>> Д> Hi!
>> Д> Есть цепочка точек, которая образует невыпуклый многоугольник.
>> Д> Нет ли у кого чего готового, способного посчитать его площадь?
>> Д> ДЛя выпуклого многоугольника исходник есть, а для невыпуклого нет.
>> Д> Если кому не жалко, киньте плиз.
>> Д> Дедка mailto:geg***@y*****.ru
>>

S> невыпуклый многоугольник разбивается на выпуклые;

S> сумма их площадей и есть искомое.

Может подскажеш, как это осуществить программно?

С бестами и регардами
Havoc
mailto:hav***@i*****.ru
Номер выпуска : 2127
Возраст листа : 153 (дней)
Количество подписчиков : 390
Адрес в архиве : http://subscribe.ru/archive/comp.soft.prog.prog/msg/86401
Получить правила : mailto:comp.soft.prog.prog-rules@subscribe.ru
Формат "дайджест" : mailto:comp.soft.prog.prog-digest@subscribe.ru
Формат "каждое письмо" : mailto:comp.soft.prog.prog-normal@subscribe.ru
Формат "читать с веба" : mailto:comp.soft.prog.prog-webonly@subscribe.ru

-*Информационный канал Subscribe.Ru
Написать в лист: mailto:comp.soft.prog.prog-list@subscribe.ru
Отписаться: mailto:comp.soft.prog.prog--unsub@subscribe.ru

http://subscribe.ru/ mailto:ask@subscribe.ru

   Havoc 2004-02-21 22:35:55 (#86401)

Левье что добавляет Яхогрупс

Здарова, Дедка!

21 февраля 2004 г., суббота, 03:39:25, ты намылил:

Д> Плиз настрой у себя в темплейтах, что бы последней строкой было
Д> два минуса пробел и Ентер
Д> типа так
Д> --
Д> Это надоо что бы все левье что добавляет Яхогрупс не воспринмалось при
Д> реплее

Дык в Bate письма редактируются не в RichEdite а в SynEdite, насколько
я понял, а в нем все пробелы после последнего читабельного символа в
строке удаляются.
А еще пара советиков всем: не ставьте в письме до своей подписи
строк типа --, цитируйте письма без строки Original Message Кстати вот шаблон для цитирования (для Bata) - отрезает все лишнее, пихайте
его в шаблоны -> ответ
Кстати может у кого новее есть шаблончик (ну там mail службы
новые добавлены может) киньте на мыло или в лист ссылку.

==Начало==

Здарова, %OFromName!

%ODate, %ODow, %OTimeLong, ты намылил:

%RegExpQuotes="(?i)\A(?:(?:\s*|\-{5}BEGIN\sPGP\sSIGNED%-
\sMESSAGE\-{5}|[^\n>]*(?:%-
[Пп]ривет|[Дд]обр|hello|\bhi\b|%-
[Хх][Аа][ЙйЮю]|День\sдобрый|[Зз]драв?ствуй|%-
было\sнаписано|(?:you|[ВвТт]ы|@[^\n\s]*)\s(?:(?:на)?писал|wrote)|%-
на\sтему(?::|\s\x22)|discussing\sthe\stopic|%-
mon| tue|wed|thu|fri|sat|sun|понедельник|%-
вторник|сред|четверг|пятниц|суббот|воскресенье|%-
\d:\d\d|at\sleast\sin\spart%-
)[^\n]*)\n)*(.*?)\n*(?:\Z|(?:\-\s)?\-\-\s?\n|%-
-{5}(?:BEGIN\sPGP\sSIGNATURE|Original\sMessage)-{5}|%-
С [Уу]важением|С наилучшими|Всего хорошего|%-
Всего наилучшего|best regards|%-
_{50,60}\n(?:Заведи\sсебе\s(?:бесплатный\s)?%-
почтовый\sящик|Do\sYou\sYahoo\!\?)|%-
\-{4}\s+Бесплатная\s+почта\s+http://mail.Rambler.ru/|%-
[^\n]*[*=_-]{16,}[^\n]*(?:\n[^\n]*){1,4}[\.@]yahoo|%-
\-{24}\sYahoo!\sGroups\sSponsor\s\-{21}~\-{2}>|%-
\[Non-text\sportions\sof\sthis\smessage\shave\sbeen\sremoved\]|%-
Your\suse\sof\sYahoo!\sGroups\sis\ssubject\sto\s%-
http://docs.yahoo.com/info/terms/)%-
"%-
%Cursor

   Томилов Александр 2004-02-21 18:19:15 (#86236)

Re[4]: Площадь многоугольника

Здарова, Шешунов Вадим!

21 февраля 2004 г., суббота, 02:05:17, ты намылил:

>> Идея, конечно, клевая, но не совсем рабочая ;)
>> +--+ +------+
>> | | | |
>> | | | +---+
>> | +---+ |
>> | +---+
>> | |
>> +---------+---+
>> На этой фигуре точно не прокатит.
>Пробовал смотреть на ету фигуру, сидя на мониторе, но так и не понял,
>чё-й-то такое-))))))))

Энто прямоугольник с двумя углублениями.

>>
>> Да и на этой тоже
>> +-+ +-+
>> | | | |
>> | +--+ |
>> +------+
>И эту тоже-))))))))))

А энто с одним.

>Не то смотрел. Смотри аналитическую геометрию для вузов.
У нас там только лажа про векторную алгебру, прямые линии на
плоскости, линии и поверхности второго порядка, преобразования
плоскости, матрицы,линейные пространства, евклидовы и унитарные
пространства ( ;( ), аффинные пространства, основы тензорной алгебры и
указания и ответы к упражнениям ;)))))

>Давай сами подумаем. Есть, скажем, пятиугольник 1 2 3 4 5 (номера вершин -
>шоб в массив легче загнать). Проводим диагонали: 1-3, 1-4. Получаем
>треугольники 1-2-3, 1-3-4, 1-4-5. Загоняем последовательно их координаты в
>формулу, складываем и все.

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

PS: Вадим, настрой, плиз, чтобы у тебя Original Message не
писалось, а то при ответе у меня фильтр стоит и он все после этой
строки обрезает.

   Томилов Александр 2004-02-21 18:18:57 (#86235)

Re[3]: Площадь многоугольника

> А что ты скажешь на то, что тут уже обслуждалось.
> На мой взгляд, это гениально ( это я не о себе, я тут так, тему
> запостил)
> Дедка mailto:geg***@y*****.ru

Если это мне, конечно.
Пока еще не было работающих алгоритмов.
Я не говорю, что мой будет работать, но этот хоть "на бумаге" хорошо вырисовывается,
а те даже такой проверки не выдерживали.
Номер выпуска : 2124
Возраст листа : 153 (дней)
Количество подписчиков : 390
Адрес в архиве : http://subscribe.ru/archive/comp.soft.prog.prog/msg/86234
Получить правила : mailto:comp.soft.prog.prog-rules@subscribe.ru
Формат "дайджест" : mailto:comp.soft.prog.prog-digest@subscribe.ru
Формат "каждое письмо" : mailto:comp.soft.prog.prog-normal@subscribe.ru
Формат "читать с веба" : mailto:comp.soft.prog.prog-webonly@subscribe.ru

-*Информационный канал Subscribe.Ru
Написать в лист: mailto:comp.soft.prog.prog-list@subscribe.ru
Отписаться: mailto:comp.soft.prog.prog--unsub@subscribe.ru

http://subscribe.ru/ mailto:ask@subscribe.ru

   "Сергей Парамонов" 2004-02-21 18:16:35 (#86234)

Re[2]: Формула [Delpi6] [Win98]

Hello Lakmus,

Saturday, February 21, 2004, 3:03:43 AM, you wrote:

L> ну например угол между точками x1(0,0) и x2(5,0) равер нулю градусов.
L> а угол между точками x1(0,0) и x2(1,1) равер 45 градусов.

угла между точками быть не может!
тебе наверное нужен угол между отрезком (x1,x2) и осью X - это просто:
alpha = atan((x2.y-x1.y)/(x2.x-x1.x))
здесь нужно еще проверять чтобы x2.x-x1.x не был равен 0, а если он
равен нулю то угол 90 или 270 градусов.
atan возвращает угол в радианах - его нужно преобразовать в
градусы:
alpha = alpha * 180 / 3.14159;

есть еще atan2(x,y) который рассчитывает угол между вектором (x,y) и
осью X.

   2004-02-21 16:02:17 (#86157)

Re: Площадь многоугольника

> Д> Hi!
> Д> Есть цепочка точек, которая образует невыпуклый многоугольник.
> Д> Нет ли у кого чего готового, способного посчитать его площадь?
> Д> ДЛя выпуклого многоугольника исходник есть, а для невыпуклого нет.
> Д> Если кому не жалко, киньте плиз.
> Д> Дедка mailto:geg***@y*****.ru
>

невыпуклый многоугольник разбивается на выпуклые;

сумма их площадей и есть искомое.
Номер выпуска : 2122
Возраст листа : 153 (дней)
Количество подписчиков : 390
Адрес в архиве : http://subscribe.ru/archive/comp.soft.prog.prog/msg/86059
Получить правила : mailto:comp.soft.prog.prog-rules@subscribe.ru
Формат "дайджест" : mailto:comp.soft.prog.prog-digest@subscribe.ru
Формат "каждое письмо" : mailto:comp.soft.prog.prog-normal@subscribe.ru
Формат "читать с веба" : mailto:comp.soft.prog.prog-webonly@subscribe.ru

-*Информационный канал Subscribe.Ru
Написать в лист: mailto:comp.soft.prog.prog-list@subscribe.ru
Отписаться: mailto:comp.soft.prog.prog--unsub@subscribe.ru

http://subscribe.ru/ mailto:ask@subscribe.ru

   "Sn" 2004-02-21 13:39:12 (#86059)

Re: Формула [Delpi6] [Win98]

> Здравствуйте!
> Дано 1 точка X1(x1,y1)
> 2 точка X2(x2,y2)
>
> Как найти угол между этими точками в пространстве? В градусах.
> Пока!
> > С уважением Lakmus
> http://www.nvkz.kuzbass.net/lakmus

Извини! Но угол между двумя точками - это нонскнс! там тока отрезок или
прямая уместятся, а угол между двух отрезков. Или с осью Х,Y.

janal***@n*****.ru
--
Номер выпуска : 2121
Возраст листа : 153 (дней)
Количество подписчиков : 390
Адрес в архиве : http://subscribe.ru/archive/comp.soft.prog.prog/msg/86033
Получить правила : mailto:comp.soft.prog.prog-rules@subscribe.ru
Формат "дайджест" : mailto:comp.soft.prog.prog-digest@subscribe.ru
Формат "каждое письмо" : mailto:comp.soft.prog.prog-normal@subscribe.ru
Формат "читать с веба" : mailto:comp.soft.prog.prog-webonly@subscribe.ru

-*Информационный канал Subscribe.Ru
Написать в лист: mailto:comp.soft.prog.prog-list@subscribe.ru
Отписаться: mailto:comp.soft.prog.prog--unsub@subscribe.ru

http://subscribe.ru/ mailto:ask@subscribe.ru

   2004-02-21 13:06:36 (#86033)

Re: Формула [Delpi6] [Win98]

> > Насколько помню геометрию угол определяется между прямыми, а не между
> > точками.
>
> ну например угол между точками x1(0,0) и x2(5,0) равер нулю градусов.
> а угол между точками x1(0,0) и x2(1,1) равер 45 градусов.
>
> > И потом, если речь идет о
> > пространстве, то почему
> > координаты двухкомпонентные?
>
> 2d пространство.
>
Ну, оказывается третья точка (0,0); надо было это сказать.

atan(a2/a1)-atan(b2/b1);

A и В -- точки; 1, 2 -- первая и вторая координаты;

это при условии, что а2 > b2;

иначе поменяй из местами.
Номер выпуска : 2120
Возраст листа : 153 (дней)
Количество подписчиков : 390
Адрес в архиве : http://subscribe.ru/archive/comp.soft.prog.prog/msg/86019
Получить правила : mailto:comp.soft.prog.prog-rules@subscribe.ru
Формат "дайджест" : mailto:comp.soft.prog.prog-digest@subscribe.ru
Формат "каждое письмо" : mailto:comp.soft.prog.prog-normal@subscribe.ru
Формат "читать с веба" : mailto:comp.soft.prog.prog-webonly@subscribe.ru

-*Информационный канал Subscribe.Ru
Написать в лист: mailto:comp.soft.prog.prog-list@subscribe.ru
Отписаться: mailto:comp.soft.prog.prog--unsub@subscribe.ru

http://subscribe.ru/ mailto:ask@subscribe.ru

   "Sn" 2004-02-21 13:01:36 (#86019)

Re[2]: Площадь многоугольника

А что ты скажешь на то, что тут уже обслуждалось.
На мой взгляд, это гениально ( это я не о себе, я тут так, тему
запостил)
Дедка mailto:geg***@y*****.ru

   2004-02-21 04:24:19 (#86006)

Re: Площадь многоугольника

Доброго времени суток, Дедка.

Friday, February 20, 2004, 12:25:34 AM, писали:

Д> Hi!
Д> Есть цепочка точек, которая образует невыпуклый многоугольник.
Д> Нет ли у кого чего готового, способного посчитать его площадь?
Д> ДЛя выпуклого многоугольника исходник есть, а для невыпуклого нет.
Д> Если кому не жалко, киньте плиз.
Д> Дедка mailto:geg***@y*****.ru

Как вариант:
Сделать из "впуклого" многоугольника "выпуклый".
Рассчитать его площадь.
Рассчитать площадь "впуклосей"
Вычесть из первого второе.

Все нижеследующее применимо только для плоских многоугольников.

Для определения "впуклостей":
Выбираем две самые крайние варшины.
Вершины должны быть последовательные(1-2, 4-5)
Критерий выбора - прямая(бесконечная) проведеная через эти две вершины
не должна пересекать отрезки, последовательно соединяющие все
остальные.(Очень трудоемкий критерий, но пока ничего другого не вижу)
Был у меня где-то алгоритм для такой проверки.
Суть заключается в том, что строются уравнения прямой и отрезка(в
данном случае тоже прямой) в параметрическом виде.
Ищется точка пересечения.
Смотрится на параметр во второй системе(отрезка).
Если уравнения составлены верно(!!!), то параметр примет такие
значения:
меньше 0 и больше 1 - не пересекает.
больше нуля и меньше 1 - соответственно пересекает.
равен 0 или 1 - пересекает первую или вторую точки.

Строим вектора из одной из выбранных вершин вершины во все остальные.
Находим углы между 1-м вектором(вектором между первой и второй
выбранной вершиной) и всеми остальными.

Поехали по углам:
если угол меньше или равен предыдущему - предыдущею точку отбрасываем.
Запоминаем какую точку откинули
опять сравниваем, если опять меньше или равен, то опять отбрасываем
Опять же запоминаем.
Если откидываем сразу несколько точек, то запоминать их нужно
отдельно.

В результате должно быть так:
Массив с оставшимися от многоугольника точками(МОТ).
Один или несколько массивов с запомнеными точками(МЗТ).
к каждому из МЗТ слева и справа добавляем соседние соответствующие
точки.

МОТ - не совсем выпуклый многоугольник(не канонический),
но формула для выпуклых для него работать должна.
Считаем его.

МЗТ теперь представляет собой набор выпуклых многоугольников.
Считаем их.

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

С бестами и регардами
Havoc
mailto:hav***@i*****.ru
Номер выпуска : 2118
Возраст листа : 153 (дней)
Количество подписчиков : 390
Адрес в архиве : http://subscribe.ru/archive/comp.soft.prog.prog/msg/86003
Получить правила : mailto:comp.soft.prog.prog-rules@subscribe.ru
Формат "дайджест" : mailto:comp.soft.prog.prog-digest@subscribe.ru
Формат "каждое письмо" : mailto:comp.soft.prog.prog-normal@subscribe.ru
Формат "читать с веба" : mailto:comp.soft.prog.prog-webonly@subscribe.ru

-*Информационный канал Subscribe.Ru
Написать в лист: mailto:comp.soft.prog.prog-list@subscribe.ru
Отписаться: mailto:comp.soft.prog.prog--unsub@subscribe.ru

http://subscribe.ru/ mailto:ask@subscribe.ru

   Havoc 2004-02-21 04:05:09 (#86003)

Re: Формула [Delpi6] [Win98]

Доброго времени суток, Lakmus.

Saturday, February 21, 2004, 2:23:05 AM, писали:

L> Здравствуйте!
L> Дано 1 точка X1(x1,y1)
L> 2 точка X2(x2,y2)

L> Как найти угол между этими точками в пространстве? В градусах.
А как можно найти угол между ТОЧКАМИ????
Они ж не пересекаются!!!:)
А где-ж тут пространство??? Это плоскость(2-е координаты только).
Если это все-таки вектора, то - Товарисч, учите Анал.Геом.(в 11 классе
вроде это уже знают)
fi = acos(((x1*x2)+(y1*y2)+(z1*z2))/(sqr((x1*x1)+(y1*y1)+
(z1*z1))*sqr(x2*x2)+(y2*y2)+(z2*z2))))
Для плоскости принимают z1=z2=0;
Если точно известно, что вектора единичные, то знаменатель можно не
считать.
С бестами и регардами
Havoc
mailto:hav***@i*****.ru
Номер выпуска : 2117
Возраст листа : 153 (дней)
Количество подписчиков : 390
Адрес в архиве : http://subscribe.ru/archive/comp.soft.prog.prog/msg/86002
Получить правила : mailto:comp.soft.prog.prog-rules@subscribe.ru
Формат "дайджест" : mailto:comp.soft.prog.prog-digest@subscribe.ru
Формат "каждое письмо" : mailto:comp.soft.prog.prog-normal@subscribe.ru
Формат "читать с веба" : mailto:comp.soft.prog.prog-webonly@subscribe.ru

-*Информационный канал Subscribe.Ru
Написать в лист: mailto:comp.soft.prog.prog-list@subscribe.ru
Отписаться: mailto:comp.soft.prog.prog--unsub@subscribe.ru

http://subscribe.ru/ mailto:ask@subscribe.ru

   Havoc 2004-02-21 04:04:43 (#86002)

Re: Формула [Delpi6] [Win98]

Здравствуйте!

> Насколько помню геометрию угол определяется между прямыми, а не между
> точками.

ну например угол между точками x1(0,0) и x2(5,0) равер нулю градусов.
а угол между точками x1(0,0) и x2(1,1) равер 45 градусов.

> И потом, если речь идет о
> пространстве, то почему
> координаты двухкомпонентные?

2d пространство.

> В общем, если ты у своего препода не выманешь нормального условия, мы
> разобьемся в блин над решением, а решения не найдем (чё-то чую я,
> что задача
> студентческая-)))))).

=) нет, я не студент, а ученик ещё. Мне формулка для игры нужна.
Пока!
С уважением Lakmus
http://www.nvkz.kuzbass.net/lakmus
Номер выпуска : 2116
Возраст листа : 153 (дней)
Количество подписчиков : 390
Адрес в архиве : http://subscribe.ru/archive/comp.soft.prog.prog/msg/85994
Получить правила : mailto:comp.soft.prog.prog-rules@subscribe.ru
Формат "дайджест" : mailto:comp.soft.prog.prog-digest@subscribe.ru
Формат "каждое письмо" : mailto:comp.soft.prog.prog-normal@subscribe.ru
Формат "читать с веба" : mailto:comp.soft.prog.prog-webonly@subscribe.ru

-*Информационный канал Subscribe.Ru
Написать в лист: mailto:comp.soft.prog.prog-list@subscribe.ru
Отписаться: mailto:comp.soft.prog.prog--unsub@subscribe.ru

http://subscribe.ru/ mailto:ask@subscribe.ru

   2004-02-21 03:02:32 (#85994)

Re: перехват обращений к файлам

Здравствуйте !

> как решить такую задачу: имеется определенный путь и определенное
> имя файла, при обращении к этому имени основных файловых функций
> нужно подсовывать этим функциям другой файл.
> Более общий случай - как перехватить обращение к функции API.
> Желательно исходники!

Это трудно.
Поищи в инете "перехват API".
Коротко :
есть 2 способа :
1. Править каталоги импорта/экспорта PE-модуля.
2. модификация точки входа в функцию (перехватываемую).

способ 2 правильней, т.к. функцию можно вызвать через
указатель (метод 1 не сработает). но в этом случае много гемора.
Придется определять длину 1-й инструкции тела функции. А это-уже
каркас дизассемблера.

Еще трудность с внедрением своего кода в адресное просранство
других процессов. Хуки тут не всегда работают => бесполезны.
Выход - WriteProcessMemory + RPC или перехватывать точку входа
в программу. Второе - предпочтительнее, ведь надо перехватить все
вызовы интересующей функции ? Тут главная трабла - потребуется
либо самому запускать этот процесс (этот легко - через CreateProcess),
но не сразу, а подправиви образ в памяти, либо отлавливать
запуск процесса в системе (как в этом случае его изменить - не
знаю; отловить - написав драйвер (в Win2000 есть PsSetLoadImageNotifyRoutine
и PsSetCreateProcessNotifyRoutine - функции для установки обработки соотв.
событий Kernel-Mode драйвером).

Как видите - геморрно это :-(

--
С уважением, Вахтуров Виктор.
Информационный сайт для программистов http://SoftMaker.com.ru
Номер выпуска : 2115
Возраст листа : 153 (дней)
Количество подписчиков : 390
Адрес в архиве : http://subscribe.ru/archive/comp.soft.prog.prog/msg/85993
Получить правила : mailto:comp.soft.prog.prog-rules@subscribe.ru
Формат "дайджест" : mailto:comp.soft.prog.prog-digest@subscribe.ru
Формат "каждое письмо" : mailto:comp.soft.prog.prog-normal@subscribe.ru
Формат "читать с веба" : mailto:comp.soft.prog.prog-webonly@subscribe.ru

-*Информационный канал Subscribe.Ru
Написать в лист: mailto:comp.soft.prog.prog-list@subscribe.ru
Отписаться: mailto:comp.soft.prog.prog--unsub@subscribe.ru

http://subscribe.ru/ mailto:ask@subscribe.ru

   2004-02-21 03:01:34 (#85993)

Re: Формула [Delpi6] [Win98]

Здравствуйте !

> Дано 1 точка X1(x1,y1)
> 2 точка X2(x2,y2)
>
> Как найти угол между этими точками в пространстве? В градусах.

Угол между точками найти нельзя. Можно найти только
между прямыми, плоскостями, и.т.д.
То есть нужно как минимум 3 точки чтобы можно было говорить об
углах.

--
С уважением, Вахтуров Виктор.
Информационный сайт для программистов http://SoftMaker.com.ru
Номер выпуска : 2114
Возраст листа : 153 (дней)
Количество подписчиков : 390
Адрес в архиве : http://subscribe.ru/archive/comp.soft.prog.prog/msg/85992
Получить правила : mailto:comp.soft.prog.prog-rules@subscribe.ru
Формат "дайджест" : mailto:comp.soft.prog.prog-digest@subscribe.ru
Формат "каждое письмо" : mailto:comp.soft.prog.prog-normal@subscribe.ru
Формат "читать с веба" : mailto:comp.soft.prog.prog-webonly@subscribe.ru

-*Информационный канал Subscribe.Ru
Написать в лист: mailto:comp.soft.prog.prog-list@subscribe.ru
Отписаться: mailto:comp.soft.prog.prog--unsub@subscribe.ru

http://subscribe.ru/ mailto:ask@subscribe.ru

   2004-02-21 03:01:27 (#85992)
  • 1
  • 2