пересечение трёх прямых из 6ти точек
# Ввод координат 6 точек
points = []
for i in range(6):
print(f"Введите координаты точки {i+1} (через пробел):")
x, y = map(float, input().split())
points.append((x, y))
# Формируем 3 пары точек для 3 прямых
pairs = [(points[0], points[1]),
(points[2], points[3]),
(points[4], points[5])]
# Построение прямых
lines = []
for p1, p2 in pairs:
A = p2[1] - p1[1]
B = p1[0] - p2[0]
C = p2[0]*p1[1] - p1[0]*p2[1]
lines.append((A, B, C))
# Построение графика
plt.figure(figsize=(8,8))
plt.xlim(0, 1000)
plt.ylim(0, 1000)
x_vals = [0, 1000]
for idx, line in enumerate(lines):
A, B, C = line
if B != 0:
y1 = (-A*0 - C)/B
y2 = (-A*1000 - C)/B
plt.plot(x_vals, [y1, y2], label=f'Прямая {idx+1}')
else:
# Вертикальная линия
x = -C/A
plt.plot([x, x], [0, 1000], label=f'Прямая {idx+1}')
# Отметим точки
for i, point in enumerate(points):
plt.plot(point[0], point[1], 'o')
plt.text(point[0], point[1], f'P{i+1}', fontsize=12)
plt.legend()
plt.xlabel('X')
plt.ylabel('Y')
plt.title('Три прямые по 6 точкам')
plt.grid(True)
plt.show()
**-----------------------------------**
import matplotlib.pyplot as plt
# Ввод 12 координат 6 точек в строке
coords = list(map(float, input("Введите 12 координат (00): ").split()))
points = []
for i in range(0, 12, 2):
points.append((coords[i], coords[i+1]))
# Формируем 3 пары точек для 3 прямых
pairs = [(points[0], points[1]),
(points[2], points[3]),
(points[4], points[5])]
# Построение прямых
lines = []
for p1, p2 in pairs:
A = p2[1] - p1[1]
B = p1[0] - p2[0]
C = p2[0]*p1[1] - p1[0]*p2[1]
lines.append((A, B, C))
# Построение графика
plt.figure(figsize=(8,8))
plt.xlim(0, 1000)
plt.ylim(0, 1000)
x_vals = [0, 1000]
for idx, line in enumerate(lines):
A, B, C = line
if B != 0:
y1 = (-A*0 - C)/B
y2 = (-A*1000 - C)/B
plt.plot(x_vals, [y1, y2], label=f'Прямая {idx+1}')
else:
# Вертикальная линия
x = -C/A
plt.plot([x, x], [0, 1000], label=f'Прямая {idx+1}')
# Отметим точки
for i, point in enumerate(points):
plt.plot(point[0], point[1], 'o')
plt.text(point[0], point[1], f'P{i+1}', fontsize=12)
plt.legend()
plt.xlabel('X')
plt.ylabel('Y')
plt.title('Три прямые по 6 точкам')
plt.grid(True)
plt.show()
Свидетельство о публикации №125121504445