0
Tải bản đầy đủ (.doc) (78 trang)

-Kiểm tra quan hệ Điể m 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.DOC (Trang 54 -59 )

- 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

5 -Kiểm tra quan hệ Điể m 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).

- Nhập tọa độ điểm D(xd , yd , zd). - Tính các vector :

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

- Xét điểm D(xd , yd, zd) cĩ thuộc mp(ABC) khơng?

. Tính tích hữu hướng của 2 vector AB, AC là n = AB x AC cĩ dạng định thức như sau:

Hoặc cĩ thể theo cách viết dưới đây:

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))

. Tính tích vơ hướng của 2 véc tơ n=(AB x AC) và vector AD là (ABxAC).AD bằng dùng định thức cấp 3 với ba véc tơ AB, AC, AD như sau:

Dt = (AB x AC).AD

= ( xd - xa )(( yb - ya )*( zc -za ) - (yc - ya )*( zb -za ) ) + (yd - ya )(( zb -za )* (xc - xa ) - ( zc -za ) *(xb - xa ) ) + (zd - za )((xb - xa )*( yc - ya ) - (xc - xa )*( yb - ya ))

Thiết kế hệ thống kiểm tra các quan hệ hình học trang 54

yb - ya zb-za zb -za xb - xa xb - xa yb - ya yc - ya zc-za , zc -za xc - xa , xc - xa yc - ya n = xb - xa yb - ya zb - za xc - xa yc - ya zc - za xd - xa yd - ya zd - za Dt =

Luận văn tốt nghiệp

. Ta xét định thức cấp 3 này

.. Nếu Dt = 0 xuất “Điểm D thuộc mp(ABC)“ .. Nếu Dt <> 0 xuất “Điểm D khơng thuộc mp(ABC)” .. Nếu Dt <> 0 tìm khoảng cách từ điểm D đến mp(ABC) Viết phương trình tổng quát của mp(ABC), cĩ 2 vector

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

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 .

vector n cĩ thể viết lại n =(A, B, C ) là pháp vector của mp(ABC). Và phương trình tổng quát của mặt phẳng mp(ABC) la:ø

Ax + By + Cz + D = 0 . Khoảng cách từ D(xd , yd , zd) đến mp(ABC)

ddmp(ABC) = abs( Axd + Byd + Czd + D ) / sqrt (A2 + B2 + C2 ) . . Xuất ra “ ddmp(ABC) “

- Tìm giao điểm của đường thẳng d qua D(xd, yd, zd) và vuơng gĩc với mp(ABC), cĩ vector chỉ phương là pháp vector n = (A, B, C). Phương trình tham số của đường thẳng d:

X = At + xd Y = Bt + yd Z = Ct + zd

. Thay X , Y , Z vào phương trình mặt phẳng mp(ABC): A( At + xa) + B( Bt + ya) + C(Ct + za) + D = 0

 t = -(Axd + Byd + Czd + D ) / ( A2 + B2 + C2 )

. Thay t vào phương trình tham số của đường thẳng d. Ta cĩ tọa độ điểm cắt H(Xh , Yh ,Zh)

Luận văn tốt nghiệp


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 )) + za

. Xuất tọa độ điểm H(Xh , Yh ,Zh) End.

6 - Kiểm tra quan hệ Đường thẳng - Đường thẳng

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

Begin

- Nhập tọa độ 2 điểm A(xa , ya , za) và B(xb , yb , zb) mà đường thẳng d đi qua.

- Nhập tọa độ 2 điểm C(xc , yc , zc) và D(xd , yd , zd) mà đường thẳng d’ đi qua.

- Tính véc tơ chỉ phương AB của đường thẳng d: AB =( xb - xa , yb - ya , zb - za )

( hay cĩ thể viết gọn hơn AB = ( a1 , a2 , a3 ) ) - Tính véc tơ chỉ phương CD của đường thẳng d’ CD = ( xd - xc , yd - yc , zd - zc )

(hay cĩ thể viết gọn hơn CD = ( b1 , b2 , b3 ) ) - Viết phương trình của đường thẳng d:

• Phương trình chính tắc:

( x - xa )/ a1 = ( y - ya )/ a2 = ( z - za )/ a3

• Hệ phương trình tổng quát của đường thẳng d : a2x - a1y + 0 + a1ya - a2xa = 0

a3x + 0 - a1z + a1za - a3xa = 0 - Viết phương trình của đường thẳng d’:

• Phương trình chính tắc:

( x - xc )/ b1 = ( y - yc )/ b2 = ( z - zc )/ b3

• Hệ phương trình tổng quát của đường thẳng d’: b2x - b1y + 0 + b1yc - b2xc = 0

b3x + 0 - b1z + b1zc - b3xc = 0

- Xét sự tương quan của đường thẳng d qua A, B và d’qua C, D:

• Ta cĩ 3 vector AB, CD, AC:

Vector AB = ( xb - xa , yb - ya , zb - za )

Thiết kế hệ thống kiểm tra các quan hệ hình học trang 56

Dt D = Dt D = Dt D = Dt D = a2 -a1 -d1 a3 0 -d2 b2 -b1 -d3

Luận văn tốt nghiệp

Vector CD = ( xd - xc , yd - yc , zd - zc ) Vector AC = ( xc - xa , yc - ya , zc - za )

• Lập định thức cấp 3 của 3 vector AB, CD, AC

Dt = (Ab x CD).AC

= ( xc - xa )(( yb - ya )*( zd - zc ) - ( yd - yc )*( zb -za )) + ( yc - ya )(( zd - zc )*( xc - xa ) - ( zc - za )*( xb - xa )) + ( zc - za )(( xb - xa )*( yd - yc ) - ( xd - xc )*( yb - ya ))

- Nếu (Dt<>0), xuất ra kết quả “Hai đường thẳng d và d’ chéo nhau“. - Nếu ((Dt = 0) AND (a1 / b1 = a2 / b2 = a3 / b3)), xuất ra kết quả “ Hai đường thẳng d và d’ song song“.

- Nếu ((Dt = 0) AND (a1 / b1 = a2 / b2 = a3 / b3) AND (d, d’cĩ 2 điểm chung)), xuất ra kết quả “ Hai đường thẳng d và d’ trùng nhau“.

- Nếu ((Dt = 0) AND (a1 / b1 <> a2 / b2 <> a3 / b3)), xuất ra kết quả “Hai đừơng thẳng d và d’cắt nhau“.

- Tìm tọa độ của điểm cắt nhau giữa hai đường thẳng d và d’:

• Hệ phương trình tổng quát của đường thẳng d: a2x - a1y + 0 + a1ya - a2xa = 0 a3x + 0 - a1z + a1za - a3xa = 0 • Hệ phương trình tổng quát của đường thẳng d’:

b2x - b1y + 0 + b1yc - b2xc = 0 b3x + 0 - b1z + b1zc - b3xc = 0

• Giải các hệ phương trình tổng quát của đường thẳng d, d’: a2x - a1y + 0 + a1ya - a2xa = 0

a3x + 0 - a1z + a1za - a3xa = 0 (*) b2x - b1y + 0 + b1yc - b2xc = 0

Đặt:

Thiết kế hệ thống kiểm tra các quan hệ hình học trang 57

xb - xa yb - ya zb - za xd - xc yd - yc zd - zc xc - xa yc - ya zc - za Dt = Dt D = Dt D = Dt D = Dt D = a2 -a1 -d1 a3 0 -d2 b2 -b1 -d3

Luận văn tốt nghiệp

d1 = a1ya - a2xa d2 = a1za - a3xa d3 = b1yc - b2xc

• Hệ phương trình (*) viết lại như sau: a2x - a1y + 0 + d1 = 0 a3x + 0 - a1z + d2 = 0 b2x - b1y + 0 + d3 = 0

• Lập định thức cấp 3 cho hệ ba phương trình trên để tìm tọa độ giao điểm của đường thẳng d và d’:

• Tọa độ giao điểm của đường thẳng d, d’ là E(xgd , ygd , zgd): xgd = Dtxgd / Dtgd

ygd = Dtygd / Dtgd zgd = Dtzgd / Dtgd

- Xuất ra kết quả tọa độ giao điểm E(xgd , ygd , zgd). - Nếu (Dt <> 0) thì hai đường thẳng d và d’ chéo nhau

• Tính khoảng cách giữa đường thẳng d và d’(đoạn vuơng gĩc chung).

End.

Thiết kế hệ thống kiểm tra các quan hệ hình học trang 58

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 D = Dt D = Dt D = Dt D = a2 -a1 -d1 a3 0 -d2 b2 -b1 -d3

Luận văn tốt nghiệp

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.DOC (Trang 54 -59 )

×