Даны действительные числа x, y. Создайте программу, чтобы узнать, принадлежит ли точка с координатами (x, y) области, показанной на рисунке. На языке C ++​

Приложения:

Disaczar: а R тоже у пользователя спрашивать?
zhanserik2002tz: К чему равна R не записано в данных

Ответы

Ответ дал: Disaczar
1

Ответ:

Код в файле

Объяснение:

В данной задаче мы проверяем принадлежность точки трём фигурам: прямоугольнику, сектору круга и треугольнику.

Для прямоугольника достаточно, чтобы было соблюдено условие того, что x >= 0 и x <= r/ 2, а y <= 0 и > r - это можно заметить даже по картинке

Проверку на принадлежность сектору круга делаем исходя из уравнения окружности и теоремы Пифагора

x^2 + y^2 = r^2 - уравнение окружности

r^2 = x^2 + y^2 - длинна гипотенузы в треугольнике с катетами x, y.

Так как по определению окружности мы знаем, что все точки равноудалены от центра, то достаточно убедиться, что длина гипотенузы при треугольнике с катетами x,y <= радиусу сектора, при этом не имеет значения, в какой четверти уже окружности мы будем проверять это равенство.

Для принадлежности точки оставшемуся треугольнику убедимся, что x <= 0 и x >= r, а y > 0 и y < r/2, то далее нам останется проверить, что точка C(x, y) лежит под прямой, которую образуют точки A(-r, 0), B(0, r/2) или же для решения рассмотрим 2 вектора AB и AC и из определения их произведения мы выясним, по какую сторону лежит точка C. Если ABxAC > 0, то C лежит справа, если ABxAC = 0, то C лежит на AB, что нам и нужно. Имеем формулу:

A(x1, y1), B(x2, y2), C(x3, y3)

(х3 - х1) * (у2 - у1) - (у3 - у1) * (х2 - х1) >= 0

и включая уже точки из самой задачи:

A(x1, 0), B(0, y2), C(x3, y3)

упростим и расчётную формулу:

(х3 - х1) * у2 - у3  * x1 >= 0

Приложения:
Вас заинтересует