-Kiểm tra quan hệ Đườngthẳng Mặt phẳng

Một phần của tài liệu Thiết kế hệ thống kiểm tra các quan hệ hình học trong không gian 2D,3D (Trang 51 - 54)

- Nhận biết quay trái với quay phải: Cĩ những thuật giải ta phải duyệt một đa giác, lần lượt thăm mỗi đỉnh hay cạnh Ta xem như di chuyển theo một cạnh từ đỉnh

7 -Kiểm tra quan hệ Đườngthẳ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.

Một phần của tài liệu Thiết kế hệ thống kiểm tra các quan hệ hình học trong không gian 2D,3D (Trang 51 - 54)

Tải bản đầy đủ (DOC)

(69 trang)
w