Kiểm tra quan hệ Mặt phẳn g Mặt phẳng

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

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

8. Kiểm tra quan hệ Mặt phẳn g Mặt phẳng

Cơ sở toán học và thuật giải:

Begin

- Nhập tọa độ 3 điểm A(xa, ya, za), B(xb, yb, zb), C(xc, yc, zc) để xác định tọa độ mp(ABC)

- Nhập tọa độ 3 điểm M(xm , ym, zm), P(xp, yp , zp), Q( xq , yq , zq) để xác định tọa độ mặt phẳng mp(MPQ).

- Tính tọa độ các véc tơ của mp( ABC)

vector AB = ( xb- xa, yb- ya , zb- za) vector AC = ( xc- xa, yc- ya , zc- za)

(3 điểm A,B,C tạo thành mp(ABC) nên vector AB không cùng phương với vectơ AC)

-Tính tích hữu hướng của 2 vector AB, AC là n = (AB x AC),n chính là pháp vector của mp(ABC) có tọa độ :

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 tọa độ các vector của mặt phẳng mp(MPQ) :

vector MP = ( xp- xm, yp- ym , zp- zm) vector MQ = (xq- xm, yq- ym , zq- zm)

Lun văn tt nghip

Thiết kế h thng kim tra cácc quan h hình hctrang 63 trang 63

(3 điểm M, P, Q tạo thành mp(MPQ) nên vector MP không cùng phương với vector MQ)

- Tính tích hữu hướng của 2 vector MP, MQ là m = MP x MQ, m chính là pháp vector của mp(MPQ), có tọa độ :

m = MP x MQ

hay có thể viết như sau:

m = MP x MQ = (( yp - ym)*( zq-zm) - (yq- ym)*( zp-zm), ( zp -zm)* (xq- xm) - ( zq-zm) *(xp- xm), (xp- xm)*( yq- ym) - (xq- xm)*( yp- ym)) Nếu chúng ta đặt: A1= (yp - ym)*( zq-zm) - (yq- ym)*( zp-zm) B1= ( zp -zm)* (xq- xm) - ( zq-zm) *(xp- xm) C1= (xp- xm)*(yp- ym) - (xq- xm)*( xp- xm) D1= -xmA1 - ymB1- zmC1 .

Phương trình tổng quát của mặt phẳng mp(MPQ): mp(MPQ) = A1x + B1y + C1z + D1 = 0 - Xét sự tương quan của 2 mặt phẳng trên:

Nếu (A/A1= B/B1 = C/C1) xuất ra kết quả “Hai mặt phẳng trùng nhau“.  Nếu (A/A1 = B/B1 = C/C1 <> D/D1) xuất ra kết quả “Hai mặt phẳng song song với nhau“.

 Nếu (A/A1 <> B/B1) hoặc (B/B1 <> C/C1) hoặc (A/A1 <> C/C1) xuất ra kết quả “Hai mặt phẳng cắt nhau“.

- Hai mặt phẳng mp(ABC) và mp(MPQ) cắt nhau theo một giao tuyến là đường thẳng có phương trình là hệ phương trình của hai mặt phẳng mp(ABC) và mp(MPQ):

Ax

Ax ++ ByBy ++ CzCz ++ DD ==00

A1x + B1y + C1z + D1 = 0 - Tính tọa độ giao điểm thuộc giao tuyến:

Nếu (A/A1 <> B/B1) thì tọa độ z có thể được chọn tuỳ ý cho đơn giản, dùng định thức cấp 2 tìm tọa độ giao tuyến :

Ax + By + Cz + D = 0

yp -ym zp -zm zp -zm xp -xm xp

- xm yp - ym

yq -ym zq -zm , zq -zm xq -xm , xq m

Lun văn tt nghip

Thiết kế h thng kim tra cácc quan h hình hctrang 64 trang 64 A1x + B1y + C1z + D1 = 0 Ta tính được: Dx1= AB2 - A1B Dx1= B1(-D - Ck1 ) + B( D1+ C1k1) Dy1= A(-D1– C1k1) + A1( D + C1k1) Suy ra: X1= Dx1/ D Y1= Dy1/ D Z1= k1  Tọa độ I(X1, Y1, Z1) Tìm tọa độ điểm thứ 2: Dx2 = AB2 - A1B Dx2= B1(-D - Ck2) + B( D1+ C1k2) Dy2= A(-D1- C1k2) + A1( D + C1k2) X2 = Dx2/ D Y2 = Dy2/ D Z2 = k2   TTọọaa độđộ J(XJ(X22,,YY22,,ZZ22))

Xuất tọa độ 2 điểm thuộc giao tuyến J(X2, Y2, Z2) và I(X1, Y1, Z1) - Nếu hai mặt phẳng song song, tính khoảng cách của 2 mặt phẳng:

 Tìm giao điểm của đường thẳng d qua điểm M( xm, ym, zm) và vuông góc với mp(ABC), có vector chỉ phương là pháp vector của mp(ABC) là vector n=(A,B,C).

Viết phương trình tham số của đường thẳng d: X = At + xm

Y = Bt + ym

Z = Ct + zm

Thay X, Y, Z vào phương trình mặt phẳng mp(ABC): A( At + xm)+B( Bt + ym) + C(Ct + zm) + D = 0  t = -(Axm + Bym+ Czm + D ) / ( A2+ B2+ C2 ) Thay t vào phương trình tham số của đườngthẳng d:

Lun văn tt nghip

Thiết kế h thng kim tra cácc quan h hình hctrang 65 trang 65

Xh= A(-(Axd + Byd+ Czd + D ) / ( A2+ B2+ C2 ))+ xd Yh= B(-(Axd + Byd+ Czd + D ) / ( A2+ B2+ C2 )) + yd Zh= C(-(Axd + Byd+ Czd + D ) / ( A2+ B2+ C2 )) + zd

Khoảng cách hai mp(ABC) và mp(MPQ) là đoạn MH:

dmh =|MH | = sqrt ( ( xh- xm)2 + ( yh- ym)2+ ( zh - zm )2) Xuất khoảng cách dmh

End.

9-Kiểm tra tính đồng phẳng của đa giác

Cơ sở toán học:

Đa giác gọi là phẳng nếu mọi đỉnh của nó nằm trong một mặt phẳng. Trong trường hợp này ba đỉnh bất kỳ (không thẳng hàng), có thể dùng để xác định mặt phẳng chứa nó. Khi có hơn ba đỉnh, có thể các điểm không cùng nằm trên 1 mặt phẳng. Vì vậy các ứng dụng phải kiểm tra dữ liệu để bảo đảm tính đồng phẳng.

Chọn một trong m điểm, gọi là P1, làm điểm chốt (pivot) và hình thành (m-1) vector chốt Vi=Pi-P1, với i = 2,…, m. Các vector này nằm trong cùng 1 mặt phẳng nếu và chỉ nếu các đỉnh Pi nằm trong cùng một mặt phẳng. Ta biết ba vector đồng phẳng nếu và chỉ nếu tích bộ ba vô hướng của chúng triệt tiêu.Vì vậy, tạo (m-3) tích bộ ba vô hướng Vi.(V3.V2) với i=4,…., m. Nếu một trong các tích này khác zero đa giác sẽ không đồng phẳng.

Giải thuật:

- Tạo danh sách (n-1) vector từ đa giác P có n cạnh - Vòng lặp từ i =3 đến i =n-1

+Tính tích bộ ba vô hướng S= Vi .(V1x V2) + Nếu (S khác 0)

Return

Đa giác không đồng phẳng. - Return

Đa giác đồng phẳng

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

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

(79 trang)