Câu hỏi
Bài 8 - Giao điểm 2 đường thẳng
Đề bài: Nhập vào hệ số của 2 hàm bac nhat y1 = a1*x + b1 và y2 = a2*x + b2.
Tìm giao điểm và góc giua 2 đường thẳng.
Ví dụ: y1 = 2x + 1, y2 = -x + 4
Kết quả:
Giao điểm: (1.0, 3.0)
tan(góc) = |a1 - a2| / |1 + a1*a2| = 3.0
Goc giua 2 đường thẳng ≈ 71.57 do
Câu trả lời
import math
a1 = float(input("Nhap a1: "))
b1 = float(input("Nhap b1: "))
a2 = float(input("Nhap a2: "))
b2 = float(input("Nhap b2: "))
if a1 == a2:
if b1 == b2:
print("Hai duong thang TRUNG NHAU")
else:
print("Hai duong thang SONG SONG - khong co giao diem")
else:
x_giao = (b2 - b1) / (a1 - a2)
y_giao = a1 * x_giao + b1
print(f"Giao diem: ({round(x_giao,4)}, {round(y_giao,4)})")
mau = 1 + a1 * a2
if mau == 0:
print("Hai duong thang vuong goc voi nhau (goc = 90 do)")
else:
tan_goc = abs((a1 - a2) / mau)
goc = math.degrees(math.atan(tan_goc))
print(f"tan(goc) = {round(tan_goc, 4)}")
print(f"Goc giua 2 duong thang ≈ {round(goc, 2)} do")