Технический форум
Вернуться   Технический форум > Программирование > Форум программистов > Delphi, Kylix and Pascal


Ответ
 
Опции темы Опции просмотра
Старый 02.10.2010, 15:14   #1 (permalink)
Stubbs
Member
 
Регистрация: 14.06.2010
Сообщений: 911
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 353
По умолчанию Три программы

Всем доброго времени суток. Прошу помощи в написании 3-х однотипных программ в pascal.

1. Центр окружности лежит не в точке начала координат, определить лежит ли данная точка (координаты с клавиатуры) внутри окружности и вывести ответ в виде yes\no.

2.Тоже самое, только вместо окружности - прямоугольник

3. вместо окружности - неправильный многоугольник (любой)
Stubbs вне форума   Ответить с цитированием

Старый 02.10.2010, 15:14
Helpmaster
Member
 
Аватар для Helpmaster
 
Регистрация: 08.03.2016
Сообщений: 0

Рекомендую обратить внимание на данные топики, в них могут быть полезные ответы

Программы
Интересные программы
Программы для тестов ПК

Старый 02.10.2010, 16:18   #2 (permalink)
AlexZir
support
 
Аватар для AlexZir
 
Регистрация: 19.08.2007
Адрес: Зея
Сообщений: 15,794
Записей в дневнике: 71
Сказал(а) спасибо: 166
Поблагодарили 203 раз(а) в 86 сообщениях
Репутация: 75760
По умолчанию

Во всех трех заданиях - как задаются исходные фигуры? Для определения принадлежности необходимо знать исходные координаты и другие параметры фигур.

1) Принадлежность точки определяем, исходя из уравнения окружности.

2) Принадлежность точки определяем, сравнивая соответствующие координаты с координатам сторон прямоугольника.

3) Описываем каждую сторону многоугольника уравнением прямой, последовательно определяем принадлежность точки, сравнивая введенные координаты с допустимыми.
__________________
Убить всех человеков!
AlexZir вне форума   Ответить с цитированием
Старый 02.10.2010, 19:00   #3 (permalink)
Stubbs
Member
 
Регистрация: 14.06.2010
Сообщений: 911
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 353
По умолчанию

Фигуры не задаются, они константы.
1,2 это все понятно, уже даже почти написал.

А вот с 3 проблема.
Stubbs вне форума   Ответить с цитированием
Старый 04.10.2010, 00:09   #4 (permalink)
Stubbs
Member
 
Регистрация: 14.06.2010
Сообщений: 911
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 353
По умолчанию

Не хочу , конечно, наглеть, но все таки: может кто-нибудь напишет мне 3 программу?
Stubbs вне форума   Ответить с цитированием
Старый 04.10.2010, 15:48   #5 (permalink)
Stubbs
Member
 
Регистрация: 14.06.2010
Сообщений: 911
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 353
По умолчанию

Ааааа, завтра сдавать!!!!
Stubbs вне форума   Ответить с цитированием
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
Старый 04.10.2010, 17:28   #6 (permalink)
AlexZir
support
 
Аватар для AlexZir
 
Регистрация: 19.08.2007
Адрес: Зея
Сообщений: 15,794
Записей в дневнике: 71
Сказал(а) спасибо: 166
Поблагодарили 203 раз(а) в 86 сообщениях
Репутация: 75760
По умолчанию

Объясните, как фигура может быть константой? Любая плоская фигура задаётся в какой-либо плоскости, соответственно, в другой плоскости проекция фигуры может по форме не совпадать с исходной, поэтому о постоянстве в геометрии не может быть и речи . Полагаю, что вы имели в виду постоянство координат вершин фигуры в данной плоскости.

Предлагаю такой вариант решения:
1) Разбиваем многоугольник на конечное число трапеций, причем две противоположные стороны должны быть параллельными на первом этапе анализа оси абсцисс, на втором этапе - оси ординат. Обратите внимание, что при разбиении могут появиться треугольники.
2) Проверяем попадание абсциссы заданной точки внутрь каждой трапеции или треугольника. Учитываем при анализе, что совпадение координаты с одной из точек стороны трапеции также говорит о попадании.
3) Также проверяем попадание абсциссы заданной точки.
4) Делаем общий вывод о принадлежности данной точки заданной фигуре.

adhoaae.jpg
AlexZir вне форума   Ответить с цитированием
Старый 04.10.2010, 17:29   #7 (permalink)
Stubbs
Member
 
Регистрация: 14.06.2010
Сообщений: 911
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 353
По умолчанию

Координаты фигуры постоянны. Т.е их не надо вводить.
Я не могу понять, как здесь реализовать уравнение прямой, тут-же координаты не декартовы.
Stubbs вне форума   Ответить с цитированием
Старый 04.10.2010, 18:04   #8 (permalink)
AlexZir
support
 
Аватар для AlexZir
 
Регистрация: 19.08.2007
Адрес: Зея
Сообщений: 15,794
Записей в дневнике: 71
Сказал(а) спасибо: 166
Поблагодарили 203 раз(а) в 86 сообщениях
Репутация: 75760
По умолчанию

Если взять горизонталь за OX, а вертикаль - за OY, вполне можно составить каноническое уравнение любой прямой, содержащей отрезок, ограниченный двумя вершинами многоугольника.
Прямая — Википедия
__________________
Убить всех человеков!
AlexZir вне форума   Ответить с цитированием
Старый 04.10.2010, 20:38   #9 (permalink)
Vladimir_S
Специалист
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
По умолчанию

Я вот поразмыслил над этой задачкой, и пришел мне в голову такой алгоритм:
нужно отрезками прямых соединить точку со всеми вершинами и сосчитать сумму углов между всеми парами смежных лучей, выходящих из нашей точки. Если эта сумма составит 360°, то точка - внутренняя, если нет - наружная.
К сожалению, на реализацию такой программы уже нет ни времени, ни сил.
Vladimir_S вне форума   Ответить с цитированием
Старый 04.10.2010, 20:40   #10 (permalink)
Vladimir_S
Специалист
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
По умолчанию

Цитата:
Сообщение от Stubbs Посмотреть сообщение
Я не могу понять, как здесь реализовать уравнение прямой, тут-же координаты не декартовы.
А какие, интересно? Параболические, что ли?
Vladimir_S вне форума   Ответить с цитированием
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
Ответ

Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Выкл.
HTML код Выкл.
Trackbacks are Вкл.
Pingbacks are Вкл.
Refbacks are Выкл.




Часовой пояс GMT +4, время: 13:53.

Powered by vBulletin® Version 6.2.5.
Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.