Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 25.07.2015, 17:14   #11
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Сообщение от Чудо-программист Посмотреть сообщение
А еще можно нарисовать область и через getpixel читать.
А это "мимо кассы"!

Уверены, что программа будет иметь ЛИНЕЙНУЮ структуру?
Кроме того, про бритку Оккама знаете? Зачем плодить сложности, если задача решается ОДНОЙ строчкой простого кода?!
Serge_Bliznykov вне форума Ответить с цитированием
Старый 01.08.2015, 21:46   #12
Smogg
Участник клуба
 
Регистрация: 14.06.2011
Сообщений: 1,138
По умолчанию

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
Уверены, что программа будет иметь ЛИНЕЙНУЮ структуру?
Кроме того, про бритку Оккама знаете? Зачем плодить сложности, если задача решается ОДНОЙ строчкой простого кода?!
Строчка хоть и одна, но не универсальна))

А "линейная" программа... Вы разрушили мою реальность! Это ж ничего сложнее HelloWorlda)) Даже у вас эти булевы операции - уже ifы, хоть и инкогнито.

Хм... А реально на htmle эту задачку решить?
Smogg вне форума Ответить с цитированием
Старый 02.08.2015, 10:32   #13
JUDAS
фонатик DELPHI
Форумчанин
 
Аватар для JUDAS
 
Регистрация: 14.01.2008
Сообщений: 714
По умолчанию

Решение задачи определения вхождения точки в область (любой конфигурации включая вогнутые) заключается в проверке числа пересечений луча выпущеного с заданной точки в любую сторону. В математике луч можно ограничить длиной соизмеримой с размерами объекта и системой координат. Кстати, этот же метод подходит для проверки попадание точки внутрь тела.

Если число пересечений чётное - точка вне фигуры (0 считается чётным)
Если нечётное - точка внутри фигуры однозначно ! (см. рисунок 1 ниже)

Для реализации этого алгоритма нужна очень хорошая функция пересечения двух отрезков. Не какой то быдлокод написанный по школьной математике, а функция которая проверяет все возможные варианты взаимоположения двух отрезков, даже те, которые по мнению человека абсурдны (см. рисунок 2)
Изображения
Тип файла: jpg Рисунок1.jpg (29.8 Кб, 143 просмотров)
Тип файла: jpg Рисунок2.jpg (5.1 Кб, 142 просмотров)
95% сбоев и ошибок приложений, находится в полу метрах от монитора
JUDAS вне форума Ответить с цитированием
Старый 02.08.2015, 23:33   #14
Чудо-программист
Форумчанин
 
Регистрация: 22.07.2015
Сообщений: 138
По умолчанию

Getpixel всяко проще
)))
Чудо-программист вне форума Ответить с цитированием
Старый 03.08.2015, 08:55   #15
JUDAS
фонатик DELPHI
Форумчанин
 
Аватар для JUDAS
 
Регистрация: 14.01.2008
Сообщений: 714
По умолчанию

Цитата:
Getpixel всяко проще
с вещественными числами (точность до 0.1) в пределах -20 000 000 .. +20 000 000 работать будет ?
----
п.с. я написал пределы анализа в картографии в пределах планеты земля. 40 000 км по экватору причём по 20 000 в разные стороны от Гривнича и точность до 0.1 метра. Сейчас такая используется на правктике в GPS.
95% сбоев и ошибок приложений, находится в полу метрах от монитора
JUDAS вне форума Ответить с цитированием
Старый 03.08.2015, 13:05   #16
Чудо-программист
Форумчанин
 
Регистрация: 22.07.2015
Сообщений: 138
По умолчанию

Тут ведь простая школьная задачка по информатике, а не картография планеты Земля.
Так-то да.
)))
Чудо-программист вне форума Ответить с цитированием
Старый 03.08.2015, 13:10   #17
JUDAS
фонатик DELPHI
Форумчанин
 
Аватар для JUDAS
 
Регистрация: 14.01.2008
Сообщений: 714
По умолчанию

Цитата:
Тут ведь простая школьная задачка по информатике, а не картография планеты Земля.
Чудо-программист, то есть вы предлагаете использовать GetCompatibleBitmap, CreateDC ReleaseDC и тому подобные функции для школьника ?
95% сбоев и ошибок приложений, находится в полу метрах от монитора
JUDAS вне форума Ответить с цитированием
Старый 03.08.2015, 13:46   #18
Чудо-программист
Форумчанин
 
Регистрация: 22.07.2015
Сообщений: 138
По умолчанию

Я не знаю, какой вариант будет проще и линейнее — "честный" или "нечестный".
Но вашего варианта автор не потянет,
а свой я тянул, когда сам был школьником
)))
Чудо-программист вне форума Ответить с цитированием
Старый 03.08.2015, 13:59   #19
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

А ничего, что такие задания даются не с целью решения любой ценой, а с целью научить использовать элементарные математические понятия в программе? Да и кто сказал, что известен цвет заливки фона и фигуры. Да и однородна ли она
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 03.08.2015, 17:02   #20
f.hump
C/C++, Asm
Участник клуба
 
Аватар для f.hump
 
Регистрация: 02.03.2010
Сообщений: 1,323
По умолчанию

Цитата:
Для реализации этого алгоритма нужна очень хорошая функция пересечения двух отрезков. Не какой то быдлокод написанный по школьной математике, а функция которая проверяет все возможные варианты взаимоположения двух отрезков, даже те, которые по мнению человека абсурдны (см. рисунок 2)
насколько я помню для решения такой задачи школьной математики хватает с головой.

граница области задана упорядоченным набором точек Г[i](x, y), через тестовую точку (xL, yL) "проводится горизонтальная линия", сегмент границы, который пересечет линия определяется условием:

Г[i](y) <= yL <= Г[i+1](y)

ну еще отдельно отработать вырожденные ситуации, когда yL == Г[i](y)

ну и результат
Цитата:
Если число пересечений чётное - точка вне фигуры (0 считается чётным)
Если нечётное - точка внутри фигуры однозначно ! (см. рисунок 1 ниже)
f.hump вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
определить принадлежность точки закрашенной области Hikerr Паскаль, Turbo Pascal, PascalABC.NET 8 25.05.2013 09:20
определить принадлежность точки заштрихованной области Fatal Error Паскаль, Turbo Pascal, PascalABC.NET 8 02.07.2012 08:42
Определить принадлежность точки к области Fuckkiller Паскаль, Turbo Pascal, PascalABC.NET 2 21.12.2011 23:28
Определить принадлежность точки к области xrumas Общие вопросы Delphi 1 02.12.2011 02:20
Определить принадлежность точки к области. Водонька Помощь студентам 2 02.10.2011 16:47