Bài 19
Đề bài: Nhập tọa độ 4 đỉnh A, B, C, D của từ điển.
Tính thể tích từ dien: V = |AB . (AC x AD)| / 6
Tính tong diện tích 4 mat.
Tìm tọa độ trong tam G.
Ví dụ: A(0,0,0), B(1,0,0), C(0,1,0), D(0,0,1)
Kết quả:
V = |det[AB,AC,AD]| / 6 = 1/6 ≈ 0.1667
G = trung bình tọa độ 4 đỉnh = (0.25, 0.25, 0.25)
Đă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
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)
AD = (dx-ax, dy-ay, dz-az)
# Tich co huong AC x AD
nx = AC[1]*AD[2] - AC[2]*AD[1]
ny = AC[2]*AD[0] - AC[0]*AD[2]
nz = AC[0]*AD[1] - AC[1]*AD[0]
# Tich hop: AB . (AC x AD)
tich_hop = AB[0]*nx + AB[1]*ny + AB[2]*nz
the_tich = abs(tich_hop) / 6
print(f"\nThe tich tu dien = {round(the_tich, 6)}")
# Trong tam
Gx = (ax+bx+cx+dx) / 4
Gy = (ay+by+cy+dy) / 4
Gz = (az+bz+cz+dz) / 4
print(f"Trong tam G = ({round(Gx,4)}, {round(Gy,4)}, {round(Gz,4)})")
# Do dai cac canh
def do_dai(P, Q):
return math.sqrt((Q[0]-P[0])**2 + (Q[1]-P[1])**2 + (Q[2]-P[2])**2)
A = (ax,ay,az); B = (bx,by,bz); C = (cx,cy,cz); D = (dx,dy,dz)
canh = [('AB',A,B),('AC',A,C),('AD',A,D),('BC',B,C),('BD',B,D),('CD',C,D)]
print("\nDo dai cac canh:")
for ten, P, Q in canh:
print(f" {ten} = {round(do_dai(P,Q), 4)}")