Câu hỏi
Bài 16
Đề bài: Nhập tọa độ 4 điểm A, B, C, D trong không gian.
Tìm phương trình mặt phẳng (ABC): ax + by + cz + d = 0.
Tính khoảng cách từ D đến mặt phẳng (ABC).
Ví dụ: A(1,0,0), B(0,1,0), C(0,0,1), D(1,1,1)
Kết quả:
Vecto phap tuyen: AB x AC = (1,1,1)
MP (ABC): x + y + z - 1 = 0
d(D, MP) = |1+1+1-1| / can(3) = 2/can(3) ≈ 1.155
Câu trả lời
visibility
Hiện đáp án
content_copy
Copy đáp án
play_arrow
Chạy trong IDE
import math
ax,ay,az = map(float, input("A (x y z): ").split())
bx,by,bz = map(float, input("B (x y z): ").split())
cx,cy,cz = map(float, input("C (x y z): ").split())
dx,dy,dz = map(float, input("D (x y z): ").split())
AB = (bx-ax, by-ay, bz-az)
AC = (cx-ax, cy-ay, cz-az)
# Tich co huong AB x AC = vecto phap tuyen n
nx = AB[1]*AC[2] - AB[2]*AC[1]
ny = AB[2]*AC[0] - AB[0]*AC[2]
nz = AB[0]*AC[1] - AB[1]*AC[0]
# Phuong trinh MP: nx(x-ax) + ny(y-ay) + nz(z-az) = 0
# <=> nx*x + ny*y + nz*z + (-nx*ax - ny*ay - nz*az) = 0
d_mp = -(nx*ax + ny*ay + nz*az)
print(f"\nVecto phap tuyen: ({round(nx,4)}, {round(ny,4)}, {round(nz,4)})")
print(f"Phuong trinh MP (ABC): {round(nx,4)}x + {round(ny,4)}y + {round(nz,4)}z + {round(d_mp,4)} = 0")
# Khoang cach tu D den MP
tu_so = abs(nx*dx + ny*dy + nz*dz + d_mp)
mau_so = math.sqrt(nx**2 + ny**2 + nz**2)
khoang = tu_so / mau_so
print(f"\nKhoang cach tu D({dx},{dy},{dz}) den MP:")
print(f" = |{round(nx,4)}*{dx} + {round(ny,4)}*{dy} + {round(nz,4)}*{dz} + {round(d_mp,4)}|")
print(f" / sqrt({round(nx,4)}^2 + {round(ny,4)}^2 + {round(nz,4)}^2)")
print(f" = {round(tu_so,4)} / {round(mau_so,4)}")
print(f" = {round(khoang,6)}")