Задание 1
На первой картинке мы имеем 3 прямые, образующие треугольник. По точкам определим их функции.
Вершины треугольника: (1; 4), (5; -4), (-5; -3).
Функция прямой по двум точкам:
![\frac{x - x0}{x1 - x0} = \frac{y - y0}{y1 - y0} \frac{x - x0}{x1 - x0} = \frac{y - y0}{y1 - y0}](https://tex.z-dn.net/?f=%5Cfrac%7Bx%20-%20x0%7D%7Bx1%20-%20x0%7D%20%3D%20%5Cfrac%7By%20-%20y0%7D%7By1%20-%20y0%7D)
Подставляем точки и получаем три функции:
![l1(x) = \frac{x - 5}{1 - 5} = \frac{y + 4}{4 + 4} \Leftrightarrow y = -2x + 6 l1(x) = \frac{x - 5}{1 - 5} = \frac{y + 4}{4 + 4} \Leftrightarrow y = -2x + 6](https://tex.z-dn.net/?f=l1%28x%29%20%3D%20%5Cfrac%7Bx%20-%205%7D%7B1%20-%205%7D%20%3D%20%5Cfrac%7By%20%2B%204%7D%7B4%20%2B%204%7D%20%5CLeftrightarrow%20y%20%3D%20-2x%20%2B%206)
![l2(x) = \frac{x - 5}{-5 - 5} = \frac{y + 4}{-3 + 4} \Leftrightarrow y = -0.1x + 4.5 l2(x) = \frac{x - 5}{-5 - 5} = \frac{y + 4}{-3 + 4} \Leftrightarrow y = -0.1x + 4.5](https://tex.z-dn.net/?f=l2%28x%29%20%3D%20%5Cfrac%7Bx%20-%205%7D%7B-5%20-%205%7D%20%3D%20%5Cfrac%7By%20%2B%204%7D%7B-3%20%2B%204%7D%20%5CLeftrightarrow%20y%20%3D%20-0.1x%20%2B%204.5)
![l3(x) = \frac{x - 1}{-5 - 1} = \frac{y - 4}{-3 - 4} \Leftrightarrow 7x - 7 = 6y - 24 \Leftrightarrow y = (7x + 17) / 6 l3(x) = \frac{x - 1}{-5 - 1} = \frac{y - 4}{-3 - 4} \Leftrightarrow 7x - 7 = 6y - 24 \Leftrightarrow y = (7x + 17) / 6](https://tex.z-dn.net/?f=l3%28x%29%20%3D%20%5Cfrac%7Bx%20-%201%7D%7B-5%20-%201%7D%20%3D%20%5Cfrac%7By%20-%204%7D%7B-3%20-%204%7D%20%5CLeftrightarrow%207x%20-%207%20%3D%206y%20-%2024%20%20%5CLeftrightarrow%20%20%20y%20%3D%20%287x%20%2B%20%2017%29%20%2F%206)
Точка находится в области, если 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!")
===============================
Ваши оценки и отзывы помогают лучше оценить качество решения.
Если ответ удовлетворил, не забудь выбрать его как "Лучший".
Успехов в учёбе!