Даны действительные числа x, y. Создайте программу, чтобы узнать, принадлежит ли точка с координатами (x, y) области, показанной на рисунке. На языке C ++
В данной задаче мы проверяем принадлежность точки трём фигурам: прямоугольнику, сектору круга и треугольнику.
Для прямоугольника достаточно, чтобы было соблюдено условие того, что 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, что нам и нужно. Имеем формулу:
Код в файле
Объяснение:
В данной задаче мы проверяем принадлежность точки трём фигурам: прямоугольнику, сектору круга и треугольнику.
Для прямоугольника достаточно, чтобы было соблюдено условие того, что 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