Bài 17
Đề bài: Nhập hệ số a, b, c, d của mặt phẳng ax + by + cz + d = 0.
Nhập điểm M(x0, y0, z0).
Tính khoảng cách từ M đến mặt phẳng.
Tìm hoa do H (hinh chieu của M len mặt phẳng).
Ví dụ: 2x - y + 2z - 3 = 0, M(3, 4, 5)
Kết quả:
d(M, MP) = |2*3 - 4 + 2*5 - 3| / can(4+1+4) = |13| / 3 ≈ 4.333
H = M - (d * n/|n|) * n/|n| = (3 - 26/9, 4 + 13/9, 5 - 26/9)
Đăng nhập để giáo viên có thể giao bài và nhận bài nộp của bạn.
Câu trả lời
import math
a = float(input("He so a: "))
b = float(input("He so b: "))
c = float(input("He so c: "))
d = float(input("He so d: "))
x0 = float(input("Toa do x cua M: "))
y0 = float(input("Toa do y cua M: "))
z0 = float(input("Toa do z cua M: "))
tu_so = a*x0 + b*y0 + c*z0 + d
mau_so = math.sqrt(a**2 + b**2 + c**2)
khoang = abs(tu_so) / mau_so
print(f"\nd(M, MP) = |{a}*{x0} + {b}*{y0} + {c}*{z0} + {d}| / sqrt({a}^2+{b}^2+{c}^2)")
print(f" = {abs(round(tu_so,4))} / {round(mau_so,4)}")
print(f" = {round(khoang,6)}")
# Hoa do H: H = M - t*n trong do t = (a*x0+b*y0+c*z0+d)/(a^2+b^2+c^2)
t = tu_so / (a**2 + b**2 + c**2)
Hx = x0 - t*a
Hy = y0 - t*b
Hz = z0 - t*c
print(f"\nHinh chieu H cua M len mat phang:")
print(f" H = ({round(Hx,6)}, {round(Hy,6)}, {round(Hz,6)})")
kiem_tra = a*Hx + b*Hy + c*Hz + d
print(f" Kiem tra H thuoc MP: {a}*Hx + {b}*Hy + {c}*Hz + {d} = {round(kiem_tra,9)}")