III. CÁC THUẬT TỐN KIỂM TRA SỰ TƯƠNG QUAN GIỮA CÁC ĐỐI TƯỢNG HÌNH HỌC
7 Kiểm tra quan hệ Đường thẳng Mặt phẳng
Cơ sở tốn học và giải thuật:
Begin
- Nhập tọa độ 3 điểm A(xa , ya, za), B(xb , yb , zb), C(xc , yc , zc) xác định mặt phẳng mp(ABC) (3 điểm A, B, C khơng thẳng hàng với nhau).
- Nhập tọa độ 2 điểm E(xe , ye , ze) và F(xf, yf , zf) mà đường thẳng d đi qua.
- Tính tọa độ các vector :
AB = ( xb - xa , yb - ya , zb - za ) AC = ( xc - xa , yc - ya , zc - za )
- Tính tích hữu hướng của 2 vector AB, AC cĩ dạng định thức cấp 2 như sau (n = AB x AC chính là pháp vector của mp(ABC))
Thiết kế hệ thống kiểm tra các quan hệ hình học trang 51
a2 -a1 0 a3 0 -a1 b2 -b1 0 -d1 -a1 0 -d2 0 -a1 -d3 -b1 0 a2 -d1 0 a3 -d2 -a1 b2 -d3 0 Dt = Dt = Dt = Dt = a a2 -a1 -d1 3 0 -d2 b2 -b1 -d3 yb -ya zb -za zb -za xb -xa xb -xa yb -ya yc -ya zc -za , zc -za xc -xa , xc -xa yc -ya Ab x AC =
Hoặc cĩ thể viết dưới dạng như sau: n = AB x AC = (( yb - ya )*( zc - za ) - ( yc - ya )*( zb -za ), ( zb - za )*( xc - xa ) - ( zc - za )*( xb - xa ), ( xb - xa )*( yc - ya ) - ( xc - xa)*( yb - ya )) Nếu chúng ta đặt: A = ( yb - ya )*( zc - za ) - ( yc - ya )*( zb - za ) B = ( zb - za )*( xc - xa ) - ( zc - za )*( xb - xa ) C = ( xb - xa )*( ya - yb ) - ( xc - xa)*( xb - xa) D = -xaA - yaB - zaC
Phương trình tổng quát của mặt phẳng mp(ABC) cĩ dạng: Ax + By + Cz + D = 0
- Tính vector chỉ phương EF của đường thẳng d đi qua hai điểm E và F: vector EF = ( xf - xe , yf - ye , zf - ze )
( cĩ thể viết gọn lại EF = ( a1 , a2 , a3 ) ) -Viết phương trình tham số của đường thẳng d:
X = a1t + xe
Y = a2t + ye
Z = a3t + ze
- Xét sự tương quan giữa đường thẳng d qua 2 điểm E, F và mp(ABC) qua 3 điểm A, B, C :
• Tính tích vơ hướng của 2 vector (AB x AC) và vector EF bằng việc sử dụng định thức cấp 3 với ba vector AB, AC, EF như sau:
vector AB = ( xb - xa , yb - ya , zb - za ) vector AC = ( xc - xa , yc - ya , zc - za ) vector EF = ( xf - xe , yf - ye , zf - ze ) Định thức cấp 3: Dt = (AB x AC).EF = ( xf - xe )(( yb - ya)*( zc - za ) - ( yc - ya )*( zb - za )) + ( yf - ye )(( zb - za )*( xc - xa ) - ( zc -za )*( xb - xa )) + ( zf - ze )(( xb - xa )*( yc - ya ) - ( xc - xa)*( yb - ya )) • Xét định thức cấp 3 này: xb - xa yb - ya zb - za xc - xa yc - ya zc - za xf - xe yf - ye zf - ze Dt =
+ Nếu Dt = 0, xuất ra kết quả “Đường thẳng d song song hoặc chứa trong mp(ABC)“
+ Nếu Dt<>0, xuất ra kết quả “Đường thẳng d cắt mp(ABC)“ - Nếu Dt<>0, tìm tọa độ giao điểm giữa đường thẳng d và mp(ABC):
+ Phương trình tổng quát của mặt phẳng mp(ABC) cĩ dạng: Ax + By + Cz + D = 0
+ Phương trình tham số cuả đường thẳng d: X = a1t + xe
Y = a2t + ye Z = a3t + ze
+ Thay X, Y, Z vào phương trình mặt phẳng (ABC), ta được: A( a1t + xe) + B( a2t + ye) + C(a3t + ze) + D = 0
t = -(Axe + Bye + Cze + D ) / ( Aa1 + Ba2 + Ca3 )
+ Thay t vào phương trình tham số cuả đường thẳng d, ta cĩ tọa độ giao điểm của d và mp(ABC):
Xgd = a1(-(Axe + Bye + Cze + D ) / ( Aa1 + Ba2 + Ca3 ) ) + xe Ygd = a2(-(Axe + Bye + Cze + D ) / ( Aa1 + Ba2 + Ca3 ) ) + ye Zgd = a3(-(Axe + Bye + Cze + D ) / ( Aa1 + Ba2 + Ca3 ) ) + ze
+ Xuất ra tọa độ giao điểm H(xgd , ygd , zgd).
- Tính gĩc giữa đường thẳng d qua E, F và mp(ABC) qua A, B, C
Cos(AB^n) = abs(Aa1 + Ba2 + Ca3 ) / sqrt(A2 + B2 + C2) * sqrt(a12 + a22 + a32)
- Đường thẳng d song song với mp(ABC). Tính khoảng cách từ đường thẳng d đến mp(ABC):
+ Viết phương trình đường thẳng d’qua điểm E và vuơng gĩc với mặt phẳng (ABC) cĩ pháp vector n=(A , B, C )
X = At + xe Y = Bt + ye Z = Ct + ze
+ Thay X , Y , Z vào phương trình mặt phẳng (ABC), ta được: A( At + xe) + B( Bt + ye) + C(Ct + ze) + D = 0
t = -(Axe + Bye + Cze + D ) / ( A2 + B2 + C2 )
+ Thay t vào phương trình tham số của đường d’, ta cĩ tọa độ giao điểm giữa đường thẳng d’và mp(ABC):
Xh = A(-(Axe + Bye + Cze + D ) / ( A2 + B2 + C2)) + xe Yh = B(-(Axe + Bye + Cze + D ) / ( A2 + B2 + C2 )) + ye Zh = C(-(Axe + Bye + Cze + D ) / ( A2 + B2 + C2) ) + ze + Xuất ra tọa độ giao điểm H( xh , yh , zh ) .
+ Tính khoảng cách từ đường thẳng d đến mp(ABC), chính là đoạn AH:
dah = sqrt ( ( xh - xa )2 + ( yh - ya )2 + ( zh - za )2 ) + Xuất ra khoảng cách dah
End.