Составить программу, которая печатает true, если точка с координатами (х, у) принадлежит заштрихованной области, и false в противном
Можно,пожалуйста,подробно

Приложения:

MaxLevs: Тут должна быть картинка
MaxLevs: Какой из?
fraerokkk: желательно оба,но мне хотя бы один,чтобы понять

Ответы

Ответ дал: MaxLevs
0

Задание 1

На первой картинке мы имеем 3 прямые, образующие треугольник. По точкам определим их функции.

Вершины треугольника: (1; 4), (5; -4), (-5; -3).

Функция прямой по двум точкам:

\frac{x - x0}{x1 - x0} = \frac{y - y0}{y1 - y0}

Подставляем точки и получаем три функции:

l1(x) = \frac{x - 5}{1 - 5} = \frac{y + 4}{4 + 4} \Leftrightarrow y = -2x + 6

l2(x) = \frac{x - 5}{-5 - 5} = \frac{y + 4}{-3 + 4} \Leftrightarrow y = -0.1x + 4.5

l3(x) = \frac{x - 1}{-5 - 1} = \frac{y - 4}{-3 - 4} \Leftrightarrow 7x - 7 = 6y - 24  \Leftrightarrow   y = (7x +  17) / 6

Точка находится в области, если y > l2(x0) И y < l1(x) И y < l3(x).

На Python это выглядит так. (Выводить функции не надо, это делается автоматически)

def get_line_by_two_points(x0: float, y0: float, x1: float, y1: float):

   def line_y(x: float):

       return (x - x0)/(x1 - x0) * (y1 - y0) + y0

   return line_y

l1 = get_line_by_two_points(1, 4, 5, -4)

l2 = get_line_by_two_points(-5, -3, 5, -4)

l3 = get_line_by_two_points(1, 4, -5, -3)

x = int(input("Enter an X value: "))

y = int(input("Enter a Y value: "))

if y < l1(x) and y > l2(x) and y < l3(x):

   print("Point is in the space!")

else:

   print("Point is NOT in the space!")

Задание 2

Теперь у нас 4 прямые.

Мы имеем трапецию. Две прямые видны сразу: y = 1 и y = 7.

Оставшиеся две найдем по двум точкам автоматически.

Код на Python:

def get_line_by_two_points(x0: float, y0: float, x1: float, y1: float):

   def line_y(x: float):

       return (x - x0)/(x1 - x0) * (y1 - y0) + y0

   return line_y

l1 = get_line_by_two_points(-3, 7, -6, 1)  # Левая наклонная

l2 = get_line_by_two_points(7, 1, 4, 7)  # Правая наклонная

x = int(input("Enter an X value: "))

y = int(input("Enter a Y value: "))

if 1 < y < 7 and y < l1(x) and y < l2(x):

   print("Point is in the space!")

else:

   print("Point is NOT in the space!")

===============================

Ваши оценки и отзывы помогают лучше оценить качество решения.

Если ответ удовлетворил, не забудь выбрать его как "Лучший".

Успехов в учёбе!

Вас заинтересует