Три программы
Всем доброго времени суток. Прошу помощи в написании 3-х однотипных программ в pascal.
1. Центр окружности лежит не в точке начала координат, определить лежит ли данная точка (координаты с клавиатуры) внутри окружности и вывести ответ в виде yes\no. 2.Тоже самое, только вместо окружности - прямоугольник 3. вместо окружности - неправильный многоугольник (любой) |
Во всех трех заданиях - как задаются исходные фигуры? Для определения принадлежности необходимо знать исходные координаты и другие параметры фигур.
1) Принадлежность точки определяем, исходя из уравнения окружности. 2) Принадлежность точки определяем, сравнивая соответствующие координаты с координатам сторон прямоугольника. 3) Описываем каждую сторону многоугольника уравнением прямой, последовательно определяем принадлежность точки, сравнивая введенные координаты с допустимыми. |
Фигуры не задаются, они константы.
1,2 это все понятно, уже даже почти написал. А вот с 3 проблема. |
Не хочу , конечно, наглеть, но все таки: может кто-нибудь напишет мне 3 программу?
|
Ааааа, завтра сдавать!!!!
|
Вложений: 1
Объясните, как фигура может быть константой? Любая плоская фигура задаётся в какой-либо плоскости, соответственно, в другой плоскости проекция фигуры может по форме не совпадать с исходной, поэтому о постоянстве в геометрии не может быть и речи :)). Полагаю, что вы имели в виду постоянство координат вершин фигуры в данной плоскости.
Предлагаю такой вариант решения: 1) Разбиваем многоугольник на конечное число трапеций, причем две противоположные стороны должны быть параллельными на первом этапе анализа оси абсцисс, на втором этапе - оси ординат. Обратите внимание, что при разбиении могут появиться треугольники. 2) Проверяем попадание абсциссы заданной точки внутрь каждой трапеции или треугольника. Учитываем при анализе, что совпадение координаты с одной из точек стороны трапеции также говорит о попадании. 3) Также проверяем попадание абсциссы заданной точки. 4) Делаем общий вывод о принадлежности данной точки заданной фигуре. Вложение 22910 |
Координаты фигуры постоянны. Т.е их не надо вводить.
Я не могу понять, как здесь реализовать уравнение прямой, тут-же координаты не декартовы. |
Если взять горизонталь за OX, а вертикаль - за OY, вполне можно составить каноническое уравнение любой прямой, содержащей отрезок, ограниченный двумя вершинами многоугольника.
Прямая — Википедия |
Я вот поразмыслил над этой задачкой, и пришел мне в голову такой алгоритм:
нужно отрезками прямых соединить точку со всеми вершинами и сосчитать сумму углов между всеми парами смежных лучей, выходящих из нашей точки. Если эта сумма составит 360°, то точка - внутренняя, если нет - наружная. К сожалению, на реализацию такой программы уже нет ни времени, ни сил. |
Цитата:
|
Часовой пояс GMT +4, время: 02:15. |
Powered by vBulletin® Version 4.5.3
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.