III. CÁC THUẬT TOÁ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ệ Đườngthẳn g Mặt phẳng
Cơ sở toá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))
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),
yb -ya zb -za zb -za xb -xa xb - xa yb -ya
Luận văn tốt nghiệp
Thiết kế hệ thống kiểm tra cácc quan hệ hình họctrang 60 trang 60 ( 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:
+ Nếu Dt = 0, xuất ra kết quả “Đường thẳng d song song hoặc chứa trong mp(ABC)“
xb - xa yb - ya
zb - za
xc - xa yc - ya
Luận văn tốt nghiệp
Thiết kế hệ thống kiểm tra cácc quan hệ hình họctrang 61 trang 61
+ 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
Luận văn tốt nghiệp
Thiết kế hệ thống kiểm tra cácc quan hệ hình họctrang 62 trang 62
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.