z
Luận văn tốt nghiệp
Đề tài
Thiết kế hệ thống kiểm
tra các quan hệ hình
học trong khơng gian
2D và 3D
Thiết kế hệ thống kiểm tra các quan hệ hình học trang 1
Luận văn tốt nghiệp
MỤC LỤC
PH N II: N I DUNGẦ Ộ 10
Trong phần giới thiệu tơi đã trình bày những nội dung sơ lược mang tính tổng qt của
đề tài. Phần nội dung tơi trình bày chi tiết hơn theo thứ tự logic các vấn đề từ lý thuyết
tốn học đến các thuật tốn chương trình 10
I. LÝ THUY T C S TỐN H CẾ Ơ Ở Ọ 10
V. W = v i i = 1,… ,nớ 14
II. CÁC I T NG HÌNH H C VÀ S T NG QUANĐỐ ƯỢ Ọ Ự ƯƠ 23
• ng th ngĐườ ẳ 23
• ng th ngĐườ ẳ 24
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Ọ 26
D a vào hình v trên, ta có:ự ẽ 37
SUBJ_LIST: a, 1, b, 2, c, 3, 4, d, 5, 6 37
C s tốn h c:ơ ơ ọ 39
Begin 48
Ax + By + Cz + D = 0 58
⇒ T a đ J(X2 , Y2 , Z2) ọ ộ 58
PH N IV: H NG D N S D NG CH NG TRÌNHẦ ƯỚ Ẫ Ử Ụ ƯƠ 66
Trong lĩnh vực cơng nghệ máy tính cũng như cơng nghệ thơng tin có những bước
phát triển nhảy vọt, nó đã hỗ trợ vào mọi lĩnh vực trong cuộc sống xã hội, sản phẩm
của cơng nghệ thơng tin biến đổi hàng ngày, hàng giờ. Trong lĩnh vực tốn học, các sản
phẩm của cơng nghệ thơng tin cũng hỗ trợ đắc lực cho việc học tập và nghiên cứu.
Đề tài tơi thực hiện là: “THIẾT KẾ HỆ THỐNG KIỂM TRA CÁC QUAN HỆ
HÌNH HỌC TRONG KHƠNG GIAN 2D VÀ 3D“. Đề tài sử dụng ngơn ngữ lập trình
Visual C++ để thể hiện. Về góc độ học tập, nghiên cứu tơi thấy đề tài có thể giúp hiểu
rõ thêm về kiến thức cơ bản của phần đồ họa máy tính và cho vấn đề kiểm tra thực hiện
một số bài tốn hình học thêm phong phú hơn, tạo thêm phần hấp dẫn trong mơn học
này. Trong thời gian thực hiện đề tài tơi đã thực hiện được những u cầu của đề tài.
Việc thực hiện đề tài còn mang ý nghĩa đánh giá lại q trình học tập, nghiên cứu
của tơi. Nên về mặt tinh thần tơi đã cố gắng tìm hiểu, nghiên cứu, và chuẩn bị khá chu
đáo cho việc thực hiện. Nhưng sự tiếp thu cũng có những giới hạn nhất định, bởi trong
Thiết kế hệ thống kiểm tra các quan hệ hình học trang 2
Luận văn tốt nghiệp
lĩnh vực máy tính cũng như cơ sở tốn học rộng lớn, khơng gian diễn dịch có thể vơ
hạn, sự thực hiện một ý tưởng nào đó có thể trong tốn học thực hiện được, nhưng việc
thể hiện thuật tốn bằng máy tính thì có những vấn đề khó thể thực hiện, vì vậy đề tài
chắc chắn còn nhiều thiếu sót nhất định.
Mong q Thầy cơ, Anh chị và các bạn thơng cảm, đóng góp ý kiến giúp đỡ. Tơi
thành thật cảm ơn …!
SINH VIÊN THỰC HIỆN
LÊ QUỐC THÁI
PHẦN I: GIỚI THIỆU
PHẦN I: GIỚI THIỆU
I. SƠ LƯỢC VỀ HỆ THỐNG KIỂM TRA CÁC QUAN HỆ HÌNH HỌC
Để cho người đọc tham khảo đề tài “THIẾT KẾ HỆ THỐNG KIỂM TRA CÁC
QUAN HỆ HÌNH HỌC“ dễ dàng hình dung được, tơi xin giới thiệu sơ lược về đề tài.
Nhiệm vụ thực hiện của đề tài:
Thiết kế hệ thống kiểm tra các quan hệ hình học trong:
Khơng gian hai chiều (2D)
Khơng gian ba chiều (3D)
Với ngơn ngữ thể hiện trên mơi trường Visual C++.
Đề tài áp dụng các kiến thức về cơ sở tốn học và khơng gian vector trong đồ họa
máy tính, để xây dựng những thuật tốn kiểm tra các quan hệ hình học.
Để dễ dàng hơn tơi xin trình bày một ví dụ điển hình như sau:
Ví dụ: cho đường thẳng a qua hai điểm A và B và đường thẳng b qua hai điểm C
và D trong khơng gian 2D hay 3D thì hai đường thẳng này cũng có những sự tương
quan với nhau, như trùng nhau, cắt nhau với một góc nào đó, chéo nhau (trong khơng
gian 3D), hay song song… Sau khi đưa vào những điều kiện giả thiết ban đầu (Input),
thì chương trình thực hiện và đưa ra kết quả kiểm tra (output) của giả thiết trên là hai
đường thẳng a và b đã tương quan như thế nào với nhau? Cắt nhau một góc bao nhiêu
độ, song song, hay trùng nhau
Đó là về mặt thuật tốn chương trình kiểm tra, đây chỉ mới là một tác vụ thực hiện
của vấn đề này. Với bài tốn như trên nếu chỉ đưa ra được những kết luận với những
dòng thơng điệp thì chúng ta thấy rằng đề tài trở nên q đơn giản khơng phong phú và
hấp dẫn qua ý kiến của người đọc hoặc tham khảo. Một tác vụ cùng đồng thời với bài
tốn trên mà nhiệm vụ của đề tài u cầu thực hiện là khi đưa vào giả thiết bài tốn
Thiết kế hệ thống kiểm tra các quan hệ hình học trang 3
Luận văn tốt nghiệp
chẳng hạn hai điểm A và B với những tọa độ xác định nào đó, qua hai điểm này sẽ
thực hiện vẽ lên một đoạn thẳng qua hai điểm A và B. Từ đó thấy vấn đề một cách trực
quan hơn, hay vẽ ra góc giữa hai đường thẳng, chính với những thể hiện này đề tài trở
nên hấp dẫn phong phú hơn, tất nhiên vấn đề này khơng ít những khó khăn cho người
thực hiện đề tài.
Trong phần nội dung tơi sẽ trình bày chi tiết hơn về đề tài “THIẾT KẾ HỆ
THỐNG KIỂM TRA CÁC QUAN HỆ HÌNH HỌC TRONG 2D VÀ 3D“.
II. GIỚI THIỆU SƠ LƯỢC NGƠN NGỮ THỂ HIỆN ĐỀ TÀI
II. 1. SƠ LƯỢC NGƠN NGỮ
Ở phần I giới thiệu sơ lược về “THIẾT KẾ HỆ THỐNG KIỂM TRA CÁC QUAN
HỆ HÌNH HỌC“, tơi đã trình bày một ví dụ về u cầu nhiệm vụ để thực hiện một tác
vụ kiểm tra vấn đề nào đó của đề tài này. Để thực hiện những vấn đề đó tơi nghiên cứu
và thực hiện trên mơi trường ngơn ngữ Visual C++.
Visual C++ là một phần mềm lập trình hướng đối tượng được phát triển trên cơ sở
là ngơn ngữ lập trình C và C++. Ở đây tơi thể hiện đề tài trên ngơn ngữ Visual C++ bởi
lẽ hiện nay ngơn ngữ này được xem là một trong các ngơn ngữ hỗ trợ (support user)
mạnh và phổ biến nhất. Cùng mục đích sâu xa hơn nữa là để cho những đề tài sau này
có thể trên cùng ngơn ngữ xây dựng ý tưởng của đề tài “THIẾT KẾ HỆ THỐNG KIỂM
TRA CÁC QUAN HỆ HÌNH HỌC“ ngày thêm một đầy đủ, phong phú, hấp dẫn và ứng
dụng mang tính thiết thực hơn. Tơi đầu tiên nghiên cứu tìm hiểu tổng qt về ngơn ngữ
như Visual C++, thực hiện những chương trình điển hình trên ngơn ngữ lập trình
hướng đối tượng. Và phần tìm hiểu chính là phần thực hiện u cầu của đề tài, cụ thể là
về phương diện tính tốn trong những thuật tốn và thể hiện trực quan bằng đồ hoạ máy
tính trên ngơn ngữ Visual C++.
Trong Visual C++ phần đồ họa được thể hiện trong lớp CDC (Class Device
Context) với nhiều hàm thành viên hỗ trợ cho việc vẽ điểm, đường, đa giác, tơ màu….
Đặc biệt hơn trong ngơn ngữ Visual C++ có sự hỗ trợ cho việc vẽ các đối tượng hình
học bằng chuột. Nhưng ngơn ngữ chỉ thực hiện được với các đối tượng hình học 2D, đối
tượng hình học 3D thì chưa có, cần phải tự thiết kế.
Trong q trình nghiên cứu, tơi nhận thấy trong ngơn ngữ Visual C++ có bộ thư
viện OPENGL là một thư viện API hỗ trợ cho việc thực hiện các chương trình đồ họa,
trên cả 2D và 3D rất mạnh, chính vì thế ở phần kiểm tra các quan hệ hình học phần 3D
tơi thực hiện trên OPENGL. Từ đây tơi chuyển hướng sang nghiên cứu OPENGL để
thực hiện cho phần 3D. Để hiểu và thực hiện được trên nó cũng khó khăn khơng kém
như ta bắt đầu nghiên cứu và làm quen với ngơn ngữ mới như Visual C++. Sau khi
nghiên cứu và hiểu được những yếu tố cơ bản của OPENGL tơi có nhận xét rằng
OPENGL là một ứng dụng để thực hiện các chương trình đồ họa máy tính hấp dẫn và
đẹp mắt. Khi đã cài được thì cách sử dụng có phần dễ dàng hơn, chỉ cần tìm hiểu một
số các hàm trong thư viện các hàm thành viên của OPENGL là đáp ứng được u cầu.
Còn mọi việc thực hiện cài đặt theo lý thuyết đồ họa máy tính như các phép biến hình,
Thiết kế hệ thống kiểm tra các quan hệ hình học trang 4
Luận văn tốt nghiệp
thiết lập chế độ màn hình, khởi tạo đồ họa, setviewport, tạo các Pallette màu, thiết lập
độ sâu hình ảnh, độ phản chiếu hình ảnh, độ tương phản … tất cả do OPENGL hỗ trợ
hầu hết.
OpenGL được định nghĩa là “giao diện phần mềm cho phần cứng đồ họa ”. Thực
chất, OpenGL là một thư viện các hàm đồ họa, được xem là tiêu chuẩn thiết kế cơng
nghiệp cho đồ họa ba chiều.
Với giao diện lập trình mạnh mẽ, OpenGL cho phép tạo các ứng dụng 3-D phức tạp
với độ tinh vi, chính xác cao, mà người thiết kế khơng phải đánh vật với các núi cơng
thức tốn học và các mã nguồn phức tạp. Và do OpenGL là tiêu chuẩn cơng nghiệp, các
ứng dụng tạo từ nó dùng được trên các phần cứng và hệ điều hành khác nhau.
Nhận xét về OPENGL tơi thấy rằng OPENGL là thư viện đồ họa trên WINDOWS
bởi vì ta có thể thấy rằng OPENGL khơng những thực hiện trên ngơn ngữ Visual C++
mà còn có thể cho phép thực hiện trên cả Visual Basis , Borland C++
II. 2. GIỚI THIỆU CÁC HÀM CỦA NGƠN NGỮ ĐƯỢC SỬ DỤNG
a. Các hàm của lớp CDC (Class Device Context)
Trong CDC có rất nhiều hàm thành viên phục vụ cho q trình kết xuất các hình ảnh
ra các thiết bị. Trong phần thực hiện đề tài, tơi xin đưa ra các hàm được sử dụng trong
đề tài
Vẽ điểm:
SetPixel ( int x , int y , int color );
Hàm này thuộc lớp CClientDC trong phần màu sử dụng macro RGB(red,green,blue)
Ví du: Để vẽ một điểm , ta thực hiện như sau:
CClientDC dc( this );
dc.SetPixel (100,100,GRB(0,0,0);
Để thể hiện tọa độ một điểm trong hệ trục tọa độ hai chiều, Visual C++ dùng lớp
CPoint, đối tượng thuộc lớp này được thể hiện bởi hai thành phần x và y. Ví dụ ta khai
báo điểm point như sau:
CPoint point
point.x=100;
point.y=100;
Vẽ đường thẳng:
Thiết kế hệ thống kiểm tra các quan hệ hình học trang 5
Luận văn tốt nghiệp
Line (int x1, int y1, int x2, int y2);
Hàm này thuộc lớp CClientDC
Ví dụ: Để vẽ đường thẳng ta thực hiện các bước sau đây
CClientDC dc(this);
dc.Line(x1,y1,x2,y2);
Ngồi ra trong việc vẽ đường thẳng còn có thể sử dụng hai hàm sau:
MoveTo(int x, int y);
Hàm này dùng để di chuyển con trỏ đến tọa độ x,y trong màn hình.
LineTo(int x, int y);
Hàm này dùng để vẽ đường thẳng từ điểm hiện hành đến điểm x, y.
Cả hai hàm này đều thuộc lớp CClientDC, việc sử dụng như sau:
CClientDC dc(this);
dc.MoveTo(x,y);
dc.LineTo(newx, newy);
Vẽ hình chữ nhật:
Rectangle(int x1,int y1,int x2,int y2);
Hàm này thuộc lớp CclientDC. Dùng để vẽ hình chữ nhật có tọa độ trên góc trên trái là
(x1,y1) và tọa độ góc dưới phải là (x2,y2). Cú pháp vẽ hình chữ nhật như sau:
CClientDC dc(this);
dc.Rectangle(x1, y1, x2, y2);
Vẽ hình Ellipse:
Ellipse(int x1,int y1,intx2,int y2);
Hàm này có các tham tương tự các tham số hình chữ nhật, hàm này cũng thuộc lớp
CClientDC. Cú pháp vẽ hình Ellipse như sau:
CClientDC dc(this);
dc.ellipse(int x1, int y1, intx2, int y2);
Hàm loan vùng kín:
FloodFill(int x,int y, int color);
Hàm này dùng để tơ màu vùng được giới hạn bởi một đường biên khép kín. Hàm này
thuộc lớp CClientDC có tác dụng tơ màu với màu color tơ hết vùng có tọa độ (x,y) và
một vùng kín bao quanh điểm đó. Cú pháp hàm như sau:
CClientDC dc(this);
Thiết kế hệ thống kiểm tra các quan hệ hình học trang 6
Luận văn tốt nghiệp
dc.FloodFill(x, y, color);
Tạo các đường vẽ:
CreatePen(typeline, width, color);
Để tạo đường vẽ trong các ứng dụng vẽ ta xét hàm CreatePen của lớp Cpen, hàm này có
dạng như sau:
Cpen *pPen=new Cpen;
pPen->CreatePen(typeline, width, color);
Trong đó :
• Tham số typeline là kiểu đường vẽ, nó có giá trị được định nghĩa như sau:
PS-SOLID Đường thẳng đồng nhất.
PS-DASH Đường thẳng gồm các gạch ngang đứt nét.
PS-DOT Đường thẳng gồm các nét chấm đứt.
PS-DASDOT Đường thẳng gồm các gạch ngang chấm đứt.
PS-DASHDOTDOT Đường thẳng gồm các gạch ngang chấm đứt.
PS-NULL Đường thẳng vơ hiệu lực khơng vẽ ra.
PS-INSIDEFRAME Đường thẳng nằm bên trong đường viền.
• Tham số width cho độ rộng của nét vẽ tính bằng pixel.
• Tham số color cho màu vẽ
b. Các hàm trong bộ thư viện OpenGL
OpenGL gồm 5 bộ hàm, bộ hạt nhân có 115 hàm cơ bản. Tên các hàm này bắt
đầu bằng GL. Windows NT hỗ trợ 4 chủng loại hàm khác, bao gồm thư viện OpenGL
utility(tên hàm bắt đầu bằng GLU), thư viện OpenGL auxiliary(tên hàm bắt đầu bằng
AUX), bộ hàm”WGL” (tên hàm bắt đầu bằng WGL), và các hàm WIN32 API (tên hàm
khơng có tiền tố đặc biệt). Bộ hàm hạt nhân cho phép thiết kế các hình dạng khác nhau,
tạo các hiệu quả chiếu sáng, kết hợp antialiasing và gán cấu trúc, thực hiện biến đổi ma
trận…
Do các hàm cơ bản được thể hiện ở nhiều dạng khác nhau tùy thuộc vào loại dữ liệu
mà chúng tiếp nhận, nên trên thực tế có hơn 300 ngun mẫu (prototype) các hàm cơ
bản.
Thư viện OpenGL utility gồm các hàm cao cấp. Các hàm này đơn giản hố
việc sử dụng hình ảnh cấu trúc, thực hiện việc biến đổi tọa độ mức cao, hỗ trợ
tesselation đa giác, và biểu diễn các đối tượng có cơ sở đa giác như hình cầu, hình trụ
hình dĩa.
Thư viện OpenGl auxiliary gồm các hàm đặc biệt dùng đơn giản hóa các ví
dụ lập trình trong sách chỉ dẫn lập trình OpenGL. Các hàm phụ thuộc platform này thực
hiện các nhiệm vụ như quản ký cửa sổ, điều khiển xuất/nhập, vẽ các đối tượng 3D nhất
định. Do các hàm này có mực đích thiết minh nên khơng được dùng trong các mã sản
xuất.
Thiết kế hệ thống kiểm tra các quan hệ hình học trang 7
Luận văn tốt nghiệp
Các hàm “WGL”kết nối OpenGL với WINdows NT, cho phép người lập
trình xây dựng và chọn lựa các ngữ cảnh biểu diễn, tạo các bitmap font, các hàm này chỉ
dùng trên Windows NT.
Cuối cùng, các hàm Win32 API được dùng giải quyết các định dạng điểm
ảnh và tạo bộ đệm đơi.
Trong phần này, tơi trình bày một số hàm được sử dụng trong đề tài.
Hàm vẽ điểm, đường, đa giác:
Được bắt đầu bởi hàm:
glBegin (Glenum mode)
Để chỉ sự bắt đầu những đỉnh của một primitive, tham số mode chỉ kiểu các primitive.
Tham số mode có các giá trị sau:
GL_POINTS : chỉ đỉnh được sử dụng là điểm.
GL_LINES : chỉ những đỉnh được dùng để tạo đoạn thẳng.
GL_LINE_STRIP : chỉ những đỉnh được sử dụng tạo đoạn thẳng nhẵn.
GL_TRIANGLES : những đỉnh được sử dụng tạo ra những tam giác.
GL_TRIANGLE_STRIP : những đỉnh được sử dụng tạo ra tam giác có
cạnh nhẵn.
GL_POLYGON : những đỉnh được sử dụng tạo ra đa giác lồi.
glEnd ( )
Hàm trên dùng để chấm dứt danh sách các đỉnh mà nó chỉ rõ primitive được khởi tạo
bởi hàm glBegin.
Ví du: Vẽ đường thẳng từ 2 điểm
glBegin(GL_LINES)
glVertex3f(0.0f, 0.0f, 0.0f);
glVertex3f(50.0f, 50.0f, 50.0f);
glEnd( );
Hàm chỉ ra tọa độ của điểm, đường, đa giác:
glVertex2f (Glfloat x,Glfloat y)
glVertex3f (Glfloat x,Glfloat y,Glfloat z)
Hàm biến đổi tọa độ:
• glLoadIdentity(); thay thế ma trận hiện hành bởi ma trận đơn vị.
• glMultMatrix(); nhân ma trận hiện hành với ma trận được chỉ định.
• gl PopMatrix(void); lấy ma trận hiện hành từ stack.
• glPushMatrix(void); đẩy ma trận hiện hành vào stack.
• glTranslatef (Glfloat x, Glfloat y, Glfloat z); nhân ma trận hiện hành bởi ma
trận tịnh tiến.
Thiết kế hệ thống kiểm tra các quan hệ hình học trang 8
Luận văn tốt nghiệp
• gl Rotatef(Glfloat Angle, Glfloat x, Glfloat y, Glfloat z); nhân ma trận hiện hành
bởi ma trận quay.
Các hàm liên quan đến màu:
• glColor3f (Glfloat red, Glfloat green, Glfloat blue); đặt màu hiện hành bởi các
thành phần red, green, blue với giá trị từ 0,0 đến 1,0.
• glClearColor(GLclampf red, GLclamp green, Glclamp blue, Glclamp alpha); đặt
màu cho việc xóa buffer màu.
• glClear(GL_COLOR_BUFFER_BIT); xóa buffer màu, xóa cửa sổ bởi màu
xóa hiện hành .
Các hàm liên quan đến ánh sáng:
• glLightf(Glenum light, Glenum pname, GLfloat param);
• glLighti(Glenum light, Glenum pname, GLint param);
Trong đó:
Tham số light chỉ ra nguồn sáng có giá trị từ GL_LIGHT0 đến GL_LIGHT7.
Tham số pname chỉ ra tham số light nào được lập như GL_AMBIENT,
GL_DIFFUSE…
Tham số param chỉ có ý nghĩa đối với nguồn sáng điểm. Tham số này có các
giá trị như: GL_SPOT_EXPONENT, GL_SPOT_CUTOFF…
Các hàm liên quan đến thuộc tính ánh sáng của vật liệu:
• glColorMaterialf(Glenum face,Glenum pname, GL float param);
• glMateriali(Glenum face,Glenum pname, GL int param);
• glMaterialfi(Glenum face,Glenum pname, const Glint* params);
• glMaterialfi(Glenum face,Glenum pname, const Glint* params);
Trong đó:
face: là thuộc tính bề mặt trước ,sau của đa giác.
pname: là thuộc tính của vật liệu: GL_AMBIENT,GL_DIFFUSE,…
param : chỉ định giá trị mà tham số pname được lập.
params: chỉ định dãy số ngun hay thực chứa các thành phần thuộc tính
được lập.
• glFrontFace(Glenum mode); xác định bề mặt đa giác là mặt trước hay sau.
Thiết kế hệ thống kiểm tra các quan hệ hình học trang 9
Luận văn tốt nghiệp
PHẦN II: NỘI DUNG
PHẦN II: NỘI DUNG
Trong phần giới thiệu tơi đã trình bày những nội dung sơ lược mang tính tổng
qt của đề tài. Phần nội dung tơi trình bày chi tiết hơn theo thứ tự logic các vấn đề từ
lý thuyết tốn học đến các thuật tốn chương trình.
I. LÝ THUYẾT CƠ SỞ TỐN HỌC
Các lý thuyết cơ sở tốn học được sử dụng cho các thuật tốn trong đề tài
“THIẾT KẾ HỆ THỐNG KIỂM TRA CÁC QUAN HỆ HÌNH HỌC“ bao gồm:
• Hình học giải tích trong mặt phẳng
• Hình học giải tích trong khơng gian.
Phần lý thuyết cơ sở tốn học này rất cần thiết cho việc thiết kế chương trình thực hiện
việc kiểm tra các quan hệ hình học, khơng gian vector là cơ sở lý thuyết tốn học tất
yếu để xây dựng các cấu trúc đồ họa máy tính.
I.1. Giới thiệu về vector:
I.1. Giới thiệu về vector:
Điểm (point): Mơ tả các vị trí của đồ hình và có nhiều cách để diễn đạt. Trong
hai chiều biểu diễn bằng cách dùng bộ-2 để cho các tọa độ theo hai trục. Hai dạng
thường được áp dụng nhiều đó là dạng Cartesian như (x,y) =(3,4) hay dạng tọa độ cực
(R, θ)=(2.4,45
0
).
Trong khi chúng được định nghĩa một cách đại số theo các thao tác nhất định trên đó,
chúng cũng cho phép một diễn dịch hình học theo các điểm, đường, chiều.
Vector: Nhìn một cách hình học, vector là một đoạn thẳng mà các điểm đầu và
điểm cuối đã được xác định . Vector là một đối tượng có độ dài và chiều tương ứng với
một số thực thể vật lý như lực, khoảng cách, và vận tốc. Vector thường được vẽ như
một mũi tên có chiều dài chỉ về một hướng.
Khi vector được chọn để chỉ định hệ tọa độ, các vector có một hàm số để đưa ra hai
hằng số, ba hằng số, Vì thế, một trong các thể hiện của một vector hai chiều a là một
cặp có thứ tự a=(a
x
, a
y
). Trong chương trình, vector được biểu diễn bằng kiểu dữ liệu:
Typedef struct
{
dx,dy: float;
} vector;
struct
{
Thiết kế hệ thống kiểm tra các quan hệ hình học trang 10
b
a+b
a
a+b
b
a
Luận văn tốt nghiệp
dx,dy,dz : float;
} vector3D
Với hai điểm P
1
(x
1
,y
1
) và P
2
(x
2
,y
2
) ta định nghĩa vector v với các thành phần là
vector v =(x
2
-x
1
, y
2
-y
1
). Đơi khi vector này được ghi là P
1
P
2
và gọi là vector từ P
1
đến
P
2
. Bản thân vector khơng bị buộc vào một vị trí, mặc dù để dễ hình dung thường vẽ
chúng xuất phát từ một điểm. Với điểm bất kỳ P = (P
x
, P
y
) trong một hệ tọa độ, vector
đi từ gốc tọa độ với các tọa độ v=(P
x
, P
y
) được gọi là vector vị trí cho P. Vector 3D
cũng rất quan trọng trong đồ họa.
I.2. Các phép tính vector:
I.2. Các phép tính vector:
Một vector n chiều, với n là số ngun dương bất kỳ:
W=(W1,W2,. . .,Wn)
với mỗi thành phần Wi là số vơ hướng.
Các vector 2 chiều và 3 chiều với n=2, n=3 thì thường gặp nhất trong đồ hoạ Chúng ta
khơng thể thấy được các vector lớn hơn 3 nhưng chúng là những thành phần có giá
rị rât lớn.
Hai phép tính số học cơ bản trên vector là cộng hai vector và định tỷ lệ một vector.
Cộng hai vector
Tổng hai vector a,b là vector c được định nghĩa như sau:
C = (c
1
, c
2
, …, c
n
) = (a
1
+ b
1
, a
2
+ b
2
, …, a
n
+ b
n
)
Thiết kế hệ thống kiểm tra các quan hệ hình học trang 11
x
P
2
v
P
4
P
3
v
P
1
y
P
5
Hình a
Hình b
a
a-c
c
-c
Luận văn tốt nghiệp
Hình a: Các thành phần của tổng là tổng các thành phần của các vector tham gia.
Hình b: Tổng các vector là đường chéo hình bình hành.
Procedure AddVectors( vector a, vector b; vector &c );
{
c.dx := a.dx + b.dx;
c.dy := a.dy + b.dy;
}
Định tỷ lệ một vector
Việc định tỷ lệ một vector nhằm thay đổi độ dài của hay đảo chiều của nó.
sa = (sa
1
, sa
2
, …, sa
n
)
Với s là hệ số tỷ lệ và a là vector. Khi s âm, chiều của sa ngược lại với a.
Procedure Scalar(real s; vector a; vector &b)
{
b.d
x
= s
∗
a.d
x
;
b.d
y
= s
y
a.d
y
;
}
Phép trừ hai vector:
Trên cơ sở cộng và định tỷ lệ, phép trừ dễ dàng định nghĩa:
a-c = a +(-c)
với thành phần thứ i là ai-ci.
Trị tuyệt đối (độ dài) của vector
Thiết kế hệ thống kiểm tra các quan hệ hình học trang 12
Luận văn tốt nghiệp
Nếu một vector W được thể hiện trong khơng gian nhiều chiều (W
2
, W
2
, …, W
n
),
dựa theo định lý Pithagore ta có cơng thức sau:
) (
22
2
2
1 n
WWWW +++=
Vector có độ dài bằng zero thường được gọi là vector 0. Chương trình con minh họa
như sau: Function Length(vector v): Real;
•
Chuẩn hóa vector -Vector đơn vị
Việc định tỷ lệ một vector để kết qủa có độ dài bằng 1 gọi là chuẩn hố một
vector, và kết qủa gọi là vector đơn vị. Ví dụ dạng chuẩn hố u
a
của a như sau:
u
a
= a / | a|
và có cùng chiều với a.
Biểu thức cho hệ số của vector có thể khai báo trực tiếp như sau:
Normalize(vector v, vector &u);
Nó có dạng vector đơn vị u do các hệ số mỗi thành phần của v:
u.d
x
:= v.d
x
/Length(v);
u.d
y
:= v.d
y
/Length(v);
Tổ hợp tuyến tính của vector:
Để hình thành tổ hợp tuyến tính của hai vector V và W, định tỷ lệ mỗi vector theo
các tỷ số a và b rồi cộng kết qủa để thành vector mới av+bw.
Tổng qt, tổ hợp tuyến tính của m vector V
1
, V
2
, …, V
m
như sau:
W = a
1
V
1
+ a
2
V
2
+ …+ a
m
V
m
Procedure Combo2D(float a,b vector u,v ,vector &W );
{
w.dx:=a*u.dx+b*v.dx;
w.dy:=a*u.dy+b*v.dy;
}
• Tổ hợp lồi của vector
Một lớp đặc biệt của tổ hợp tuyến tính có vị trí quan trọng trong tốn học và ứng
dụng số học trong đồ họa, đó là:Tổ hợp lồi (convex combination), hay tổ hợp tuyến tính
mà các hệ số khơng âm và tổng bằng 1. Vậy tổ hợp tuyến tính:
W = a
1
V
1
+ a
2
V
2
+ … +a
m
V
m
Thiết kế hệ thống kiểm tra các quan hệ hình học trang 13
Luận văn tốt nghiệp
là tổ hợp lồi nếu tổng
∑
i
a
=1và a
i
≥
0, và cung “spline” thực ra là tổ hợp lồi của
một tập các vector.
Tích vơ hướng của hai vector:
Tích vơ hướng của hai vector cho ta thơng tin đáng giá về một cặp vector như góc
giữa chúng (cụ thể là khi nào chúng vng góc) và chiếu vector lên vector khác. Nó
cũng cho ta phương trình của một mặt phẳng mơ tả bằng một điểm và hai vector.
Cho hai vector, ví dụ hai chiều (a
1
,a
2
) và (b
1
,b
2
).
Tích vơ hướng hai vector định nghĩa là:
a.b = a
1
b
1
+ a
2
b
2
Một cách tổng qt cho vector n chiều như sau: Cho Vector V= (v
1
, v
2
, …, v
n
) và W=(
w
1
, w
2
, …, w
n
), tích vơ hướng củahai vector trên là:
V. W =
i
i
V
∑
W
với i = 1,… ,n
Tích vơ hướng của hai vector được thể hiện trong thủ tục sau:
Procedure Float Dot (vector a,b)
{
return Dot = a.d
x
* b.d
x
+ a.d
y
* b.d
y
;
}
• Các tính chất của tích vơ hướng
1. Đối xứng : a.b = b.a
2. Tuyến tính: (a+c).b = a.b + c.b
3. Đồng nhất : (sa).b = s(a.b)
4. | b
2
| = b.b
Độ dài của hiệu và tổng hai vector được cho như sau:
| a-b|
2
= |a|
2
- 2ab + |b|
2
| a+b|
2
= |a|
2 +
2ab + |b|
2
Các ứng dụng của tích vơ hướng:
a. Góc giữa hai vector (hay hai đường)
Thiết kế hệ thống kiểm tra các quan hệ hình học trang 14
a.b>0 a.b=0 a.b<0
a
a
a
b
b
b
Luận văn tốt nghiệp
Đây là ứng dụng quan trọng của tích vơ hướng. Hình a dưới cho thấy góc θ giữa
hai vector a và b. Các vector này có thể có hai, ba, hay nhiều chiều. Chúng tạo thành
hai cạnh của tam giác, và cạnh thứ ba là a-b. Theo hệ thức lượng trong tam giác, ta có :
| a-b|
2
= |a|
2
+ |b|
2
- 2 |a||b|cos(θ)
Từ phương trình này và phương trình
| a-b|
2
= |a|
2
- 2ab + |b|
2
ta suy ra được: a.b = |a||b| cos(
θ
)
Nghĩa là cos(
θ
) = u
a
.u
b
Vậy cosin của góc giữa hai vector a và b là tích vơ hướng của dạng chuẩn hóa hai
vector.
∗ Dấu cuả vector a.b và sự trực giao
Ta biết rằng
cos(
ϕ
) >0 nếu
ϕ
< 90
0
cos(
ϕ
) <0 nếu
ϕ
> 90
0
cos(
ϕ
) =0 nếu
ϕ
= 0
Do vậy từ phương trình:
cos(
ϕ
) = u
a
.u
b
ta có góc giữa hai vector như sau:
Nhỏ hơn 90
o
nếu a.b >0
Bằng 90
0
nếu a.b = 0
Lớn hơn 90
o
nếu a.b < 0
Thiết kế hệ thống kiểm tra các quan hệ hình học trang 15
a
b
Hình a
c
a
e
b
x
y
Luận văn tốt nghiệp
b. Chiếu và phân tích vector:
Hình trên ta phân tích a thành c theo chiều vector b và e. Theo cách này vector c
gọi là chiếu trực giao của a lên b. Rõ ràng c có cùng chiều với b, ta còn phải tính độ
lớn | c|.
Theo phương trình a.b = |a||b|cos(
ϕ
) và hệ thức lượng tam giác ta có
phương
trình:
|c| = |a|
( )
ba
ba.
= a.u
b
(*)
Như thế độ dài của c chỉ phụ thuộc vào độ dài của a. Bây giờ ta hình thành vector
c, bằng cách thêm chiều của b.
c = |c|.u
b
Sau đó, kết hợp với phương trình (*) trên ta có:
c = ( a.u
b
)u
b
c =
a.b
b
|b|
2
Ví dụ: trong hai chiều, chiếu của a = (6,4) lên b = (1,2) như hình dưới
Thiết kế hệ thống kiểm tra các quan hệ hình học trang 16
Luận văn tốt nghiệp
Hình chiếu của c nằm dài hơn b kể từ gốc, từ phương trình trên ta có độ dài của
c là (2.8, 5.6), vector e = a-c = (3.2, -1.6 ).
c. Dạng điểm chuẩn cho đường và mặt phẳng
Dạng điểm chuẩn cho đường và cho mặt phẳng dùng nhiều trong đồ họa như việc
cắt loại bỏ đường bị che và tơ đa giác.
Xét đường L đi qua điểm A = (A
x ,
A
y
) theo chiều vector c = (c
x
,c
y
), ta có vector
n vng góc với vector c nghĩa là c.n = 0, cũng có nghĩa là c
x
.n
x
+ c
y
.n
y
=0, hay:
c
y
/ c
x
=
-n
x
/
n
y
Điều kiện n trực giao với c cho ta suy ra n có thể là bội số bất kỳ của (c
x
, c
y
),
có hai chiều đối nhau. Để có phương trình cho đường L, xét điểm bất kỳ R = (x,y) trên
L. Vector R phải vng góc với n, nên n.(R-A) = 0. Ta có thể viết lại như sau: nR=nA,
nhưng khơng thể nhân điểm với vector được. Ta thay vector R bằng r đi từ gốc và thay
A bằng a. Như vậy, các tính tốn đều phụ thuộc vào việc chọn gốc tọa độ, còn phương
trình đường thẳng vẫn phụ thuộc vào gốc khơng có gì thay đổi. Như vậy ta có:
n.r = D Với D = n.a = n
x
Ax + n
y
Ay
Đây là phương trình điểm chuẩn cho đường. Phương trình này có thể viết dạng quen
thuộc như sau:
n
x
x + n
y
y = D
• Mở rộng dạng điểm cho mặt phẳng
Các mặt phẳng cũng có thể biểu diễn ở dạng chuẩn điểm. Một mặt phẳng hồn
tồn được xác định với một điểm S = (s
x
, s
y
, s
z
) nằm trong đó và hướng chuẩn của mặt
phẳng. Chuẩn cho mặt phẳng được hiểu là vng góc với mọi đường trong mặt phẳng.
Gọi hướng chuẩn là n= (n
x
, n
y
, n
z
). Với điểm R= (x, y, z) bất kỳ trong mặt phẳng, xây
dựng vector từ R đến S, vng góc với n.
n.(R-S) = 0
Thay R-S bằng r -s và dùng tính tuyến tính, ta được:
Thiết kế hệ thống kiểm tra các quan hệ hình học trang 17
A
c
n
L
L
cn
x
y
Luận văn tốt nghiệp
n.r = D với D = n.s
Đây là phương trình điểm chuẩn của mặt phẳng. Mọi điểm trên mặt phẳng có cùng tích
vơ hướng với chuẩn. Nghĩa là mọi điểm có cùng hình chiếu lên n.
Phương trình mặt phẳng P thường viết là: Ax + By + Cz = D
Tư tích vơ hướng của phương trình ta thấy rằng dạng điểm chuẩn thực ra là:
n
x
X + n
y
Y + n
z
Z = D
Với A = n
x
, B = n
y
, và C = n
z
. Điều này cho thấy (A, B, C) là chiều chuẩn của mặt
phẳng.
Điểm trên mặt gần gốc nhất là điểm chiếu vng góc của gốc lên mặt. Như vậy nó tỉ lệ
với n, gọi là Kn, nên khoảng cách là| Kn |. Vì Kn nằm trên mặt nên n. (Kn)=D.
d. Kiểm tra nửa khơng
gian trong và ngồi của một điểm
Xét điểm Q, giả sử đường E đi qua điểm A và có chuẩn hướng ra n như hình vẽ:
Góc
ϕ
giữa n và
Q -A < 90
0
, nếu Q nằm phía ngồi, vì vậy tích n.(Q - A) > 0. Tương tự, góc
ϕ
sẽ lớn
hơn 90
0
nếu Q nằm phía trong, vì vậy n.(Q -A) < 0. Cuối cùng,
ϕ
= 90
0
nếu Q nằm trên
E, và n .(Q - A) = 0. Nếu thay Q -A bằng vector q - a và gọi đặt a.n = D, thì đường E
được cho bởi phương trình n.p = D, và ta viết lại thủ tục kiểm tra điểm Q với vector
biểu diễn q sẽ nằm:
1. Ở nửa khơng gian phía ngồi của E nếu q.n > D.
2. Trên E nếu p.n = D.
3. Ở nửa khơng gian phía trong của E nếu q.n < D.
Thiết kế hệ thống kiểm tra các quan hệ hình học trang 18
S
n
ϕ
n
E
E
A
inside
E
Luận văn tốt nghiệp
• Mở rộng cho mặt phẳng
Giả sử mặt P qua điểm A và có vector chuẩn hướng ra n thì điểm Q sẽ:
1. Ở nửa khơng gian phía ngồi của P nếu T=(q-a).n > 0
2. Trên P nếu (q-a).n=0
3. Ở nửa khơng gian phía trong của P nếu (q-a).n<0.
e. Cắt đường thẳng với cửa sổ lồi
Ta dùng kiểm tra trong-ngồi để xây dựng cơng cụ cắt hữu hiệu với cửa sổ là đa
giác lồi bất kỳ. Cửa sổ W chứa một đa giác lồi cùng với đường thẳng L từ P
1
tới P
2
. Ta
muốn xác định phần thấy của L nằm trong W. Đa giác lồi nên phần trong cửa sổ được
định nghĩa là vùng nằm ở nửa khơng gian phía trong của mỗi cạnh của W. Đoạn L được
kiểm tra đối với mỗi cạnh của W, và phần nằm ở nửa khơng gian phía ngồi được loại
ra. Sau khi mọi cạnh đã được kiểm tra, phần còn lại của L sẽ nằm trong W.Ta biểu diễn
L ở dạng tham số:
P(t) = P
1
+ ct với c = P
2
- P
1
.
Với mỗi cạnh
cửa sổ, dùng hai giá trị t
in
và t
out
để giữ lại vùng của t mà đoạn có thể nằm trong cửa
sổ. Nghĩa là khơng thể thấy đoạn ở ngồi khoảng (t
in
, t
out
). Giá trị bắt đầu cho t
in
và t
out
là 0 và 1. Khoảng này liên tục được cắt xén khi xử lý xong mỗi cạnh. Nếu lúc nào
khoảng này thành rỗng, thốt ra khỏi thuật giải cắt, và đoạn L hồn tồn bị cắt. Còn
khơng thì khoảng (t
in
, t
out
) xác định phần của L nằm trong cửa sổ. Vì W lồi, mỗi cạnh
E của nó có thể cho là đường cho ở dạng điểm chuẩn:
n.p = D
Với n là chuẩn hướng ra của cạnh. Bây giờ E có thể có một số tình huống so với
đường L.
Thiết kế hệ thống kiểm tra các quan hệ hình học trang 19
w
L
P
P
P
P
P
P
c
c
n
n
E E
Luận văn tốt nghiệp
• E song song L: nếu n trực giao với c (nghĩa là: n .c= 0). Như vậy L sẽ nằm
hồn tồn ở trong hoặc ở ngồi cửa sổ. Để xét tiếp, chọn điểm bất kỳ trên L, là P
1
và
kiểm tra trong-ngồi. Đặt p
1
= P
1
- 0 là vector từ gốc tọa độ đến P
1
. L sẽ hồn tồn nằm
trong nếu:
p
1
.n < D
Ngược lại L hồn tồn nằm ngồi.
• E khơng song song với L: L phải cắt cạnh E tại ti, để tính ti dùng phương trình:
ti=( D - n.p
1
) /n.c
Nếu chiều c của nó nhỏ hơn 90
0
kể từ n ( n.c > 0) thì đường sẽ đi ra. Ngược lại
sẽ đi vào. Nếu đi vào, thì phần với t < ti sẽ khơng thấy được, và t
in
được gán là ti(nếu t
in
< ti). Ngược lại, thì phần với t > ti sẽ khơng thấy được, và t
out
được giảm về ti(nếu ti
< t
out
). Khi kết thúc, giá trị của t
in
và t
out
sẽ được thay vào P
1
+ ct, để có được các
điểm đầu của đường bị cắt.
Tích hai vector
Tích vector của hai vector là một vector. Một trong nhiều tính chất hữu dụng của nó
là nó trực giao với hai vector ban đầu. Tích vector chỉ được định nghĩa cho vector ba
chiều, nhưng nó cũng áp dụng trong một số vấn đề trong đồ họa liên quan đến đa giác
hai chiều.
Cho vector a=(a
x
, a
y
, a
z
) và b=(b
x
, b
y
, b
z
) tích vector của chúng viết là a x b. Nó
được định nghĩa theo các vector đơn vị chuẩn i, j, k như sau:
a x b = (a
y
.b
z
- a
z
.b
y
).i + (a
z
.b
x
- a
x
.b
z
).j + (a
x
.b
y
- a
y
b
x
).k
• Từ định nghĩa suy ra các tính chất đại số sau:
Thiết kế hệ thống kiểm tra các quan hệ hình học trang 20
Luận văn tốt nghiệp
1. i x j = k
j x k = i
i x k = j
2. a x b = -b x b
3. a x (b + c) = a x b +a x c
4. (sa) x b = s(a xb)
• Ý nghĩa hình học của tích vector:
1. ax b trực giao với cả a và b.
2. Độ dài a x b bằng diện tích hình bình hành xác định bởi a và b. Diện
tích này là:
|a x b| = |a||b|sin(
ϕ
)
với
ϕ
là góc giữa a và b, đo từ a đến b hay ngược lại miễn sao góc nhỏ
hơn 180
0
.
3. Chiều của a x b xác định từ quy tắc bàn tay phải khi làm việc trong hệ
tay phải.
Tích bộ ba vơ hướng
Cho ba vector a, b, c kết hợp chúng cho ra số vơ hướng như sau:
S = a.(b x c) = a
x
(b
y
c
z
-b
z
c
y
) + a
y
(b
z
c
x
- b
x
c
z
) + a
z
(b
x
c
y
- b
y
c
x
).
Ta co: S = a.(b x c) = b.(c x a) = c.(a x b)
Tích bộ ba vơ hướng có ý nghĩa hình học đơn giản. Giá trị của nó là thể tích của khối
lăng trụ tạo bởi các vector a,b, c. Dấu của tích bộ ba vơ hướng tùy theo
cos (
ϕ
) dương nếu
ϕ
< 90
0
và âm nếu
ϕ
> 90
0
.
Thiết kế hệ thống kiểm tra các quan hệ hình học trang 21
a x b
Thể tích a x b x c
a
b
c
ϕ
Luận văn tốt nghiệp
Phương trình mặt phẳng
Trong khơng gian, qua 3 điểm A (x
a
, y
a
, z
a
), B(x
b
, y
b
, z
b
), và C(x
c
, Y
c
, z
c
) khơng
thẳng hàng xác định được phương trình mặt phẳng như sau:
Ta có vector AB = (x
b
-x
a
, y
b
-y
a
, z
b
-z
a
) và
AC = (x
c
-x
a
, y
c
-y
a
, z
c
-z
a
)
Tích hữu hướng của hai vector AB và AC là pháp vector n của mặt phẳng mp(ABC).
Vector n có tọa độ như sau:
n = ((y
b
-y
a
)*(z
c
-z
a
) - (y
c
-y
a
)*(z
b
-z
a
),
(z
b
-z
a
)*(x
c
-x
a
) - (z
c
-z
a
)*(x
b
-x
a
),
(x
b
-x
a
)*(y
c
-y
a
) - (x
c
-x
a
)*(y
b
-y
a
))
Nếu chúng ta đặt:
a
1
= (y
b
-y
a
)*(z
c
-z
a
) - (y
c
-y
a
)*(z
b
-z
a
)
b
1
= (z
b
-z
a
)*(x
c
-x
a
) - (z
c
-z
a
)*(x
b
-x
a
)
c
1
= (x
b
-x
a
)*(y
c
-y
a
) - (x
c
-x
a
)*(y
b
-y
a
)
d
1
= - x
a
a
1
- y
a
b
1
- z
a
c
1
thì vector n có thể viết lại như sau: n = (a
1
, b
1
, c
1
)
Phương trình mặt phẳng được xác định theo định thức cấp 3 như sau:
Phương trình mặt phẳng mp(ABC) ở dạng tổng qt:
a
1
X + b
1
Y+ c
1
Z + d
1
= 0
Phương trình đường thẳng
Trong khơng gian cho hai điểm A (x
a
, y
a
, z
a
), B(x
b
, y
b
, z
b
) sẽ xác định được
phương trình đường thẳng đi qua hai điểm A ,B như sau:
Thiết kế hệ thống kiểm tra các quan hệ hình học trang 22
x-x x-x x-x
y-y y-y y-y
z-z z-z z-z
= 0
Luận văn tốt nghiệp
Vector AB = (x
b
- x
a
, y
b
- y
a
, z
b
-z
a
) là vector chỉ phương của đường thẳng qua hai
điểm A, B (để gọn hơn ta viết vector chỉ phương AB=(a
1
, a
2
, a
3
), phương trình của
đường thẳng có ba dạng như sau:
• Phương trình tham số:
X = a
1
t + x
a
Y = a
2
t + y
a
Z = a
3
t + y
a
• Phương trình dạng chính tắc:
1
a
xX
a
−
=
2
a
yY
a
−
=
3
a
zZ
a
−
(với điều kiện a
1
, a
2
, a
3
<> 0 )
• Phương trình dạng tổng qt:
a
2
(x - x
a
) = a
1
( y - y
a
)
a
1
(z - z
a
) = a
3
( x - x
a
)
Hệ phương trình trên tương đương với hệ phương trình sau:
a
2
x - a
1
y + 0 + a
1
y
a
- a
2
x
a
= 0
a
3
x + 0 - a
1
z + a
1
z
a
- a
3
x
a
= 0
Phương trình tổng qt của đường thẳng qua 2 điểm trong khơng gian là hệ phương
trình bậc nhất 3 biến x, y, z như trên.
II. CÁC ĐỐI TƯỢNG HÌNH HỌC VÀ SỰ TƯƠNG QUAN
Trong phạm vi của mơn hình học thì khơng gian diễn dịch của nó rất lớn, chính vì
vậy tơi thiết kế thuật tốn trên các đối tượng hình học cơ bản. Và từ những thuật tốn
này chúng ta có thể mở rộng ra cho một diễn dịch rộng lớn hơn.
II.1. CÁC QUAN HỆ HÌNH HỌC TRONG 2D
1. Các đối tượng hình học cơ bản:
• Điểm
• Đường thẳng
• Đa giác
2. Sự tương quan giữa các đối tượng hình học:
Thiết kế hệ thống kiểm tra các quan hệ hình học trang 23
Luận văn tốt nghiệp
• Điểm - Đường thẳng.
• Điểm - Đa giác.
• Đường thẳng - Đường thẳng.
• Đường thẳng - Đa giác.
• Đa giác - Đa giác.
3. Kiểm tra sự tương quan giữa các đối tượng hình học:
a. Điểm - Đường thẳng
Kiểm tra điểm có thuộc đường thẳng?
Tính khoảng cách từ điểm đến đường thẳng nếu điểm khơng
thuộc đường thẳng.
b. Điểm - Đa giác
Kiểm tra điểm bên trong hay bên ngồi đa giác?.
c. Đường thẳng - Đường thẳng
Kiểm tra hai đường thẳng trùng nhau, cắt nhau hay song song.
Tính góc giữa hai đường thẳng.
Tính hình chiếu của đoạn thẳng trên đường thẳng.
d. Đường thẳng - Đa giác
Kiểm tra đường thẳng nằm bên trong hay bên ngồi đa giác.
Clip một đoạn thẳng vào đa giác.
e. Đa giác - Đa giác
Kiểm tra sự tương quan giữa hai đa giác.
• Cắt nhau?
• Lồng nhau hay rời nhau?
• Tính diện tích giao nhau của hai đa giác.
Kiểm tra đa giác lồi, lõm.
Tính diện tích của đa giác.
II.2. CÁC QUAN HỆ HÌNH HỌC TRONG 3D
1. Các đối tượng hình học cơ bản:
• Điểm
• Đường thẳng
• Mặt phẳng
2. Sự tương quan giữa các đối tượng hình học:
Thiết kế hệ thống kiểm tra các quan hệ hình học trang 24
Luận văn tốt nghiệp
• Điểm - Đường thẳng.
• Điểm - Mặt phẳng.
• Đường thẳng - Đường thẳng.
• Đường thẳng - Mặt phẳng.
• Mặt phẳng - Mặt phẳng.
3. Kiểm tra sự tương quan giữa các đối tượng hình học:
a. Điểm - Đường thẳng
Kiểm tra điểm có thuộc đường thẳng?
Tính khoảng cách từ điểm đến đường thẳng nếu điểm khơng
thuộc đường thẳng.
b. Điểm - Mặt phẳng
Kiểm tra điểm có thuộc mặt phẳng?
Tính khoảng cách từ điểm đến mặt phẳng nếu điểm khơng
thuộc mặt phẳng.
c. Đường thẳng - Đường thẳng
Kiểm tra hai đường thẳng đồng phẳng, cắt, song song, chéo
nhau, vng góc?
Tính góc giữa hai đường thẳng.
Tính khoảng cách giữa hai đường thẳng chéo nhau.
Tính hình chiếu của đoạn thẳng trên đường thẳng.
d. Đường thẳng - Mặt phẳng
Kiểm tra đường thẳng thuộc mặt phẳng?
Kiểm tra đường thẳng và mặt phẳng cắt nhau?
Kiểm tra đường thẳng và mặt phẳng song song?
Kiểm tra đường thẳng và mặt phẳng vng góc?
Tính góc giữa đường thẳng và mặt phẳng nếu đường thẳng và
mặt phẳng cắt nhau.
Tính khoảng cách giữa đường thẳng và mặt phẳng nếu đường
thẳng và mặt phẳng song song nhau.
e. Mặt phẳng - Mặt phẳng
Kiểm tra hai mặt phẳng trùng nhau?
Kiểm tra hai mặt phẳng cắt nhau?
Kiểm tra hai mặt phẳng song song?
Kiểm tra hai mặt phẳng vng góc?
Tính góc giữa hai mặt phẳng nếu hai mặt phẳng cắt nhau.
Tính khoảng cách giữa hai mặt phẳng nếu hai mặt phẳng song
song nhau.
Tìm giao điểm của hai mặt phẳng.
Thiết kế hệ thống kiểm tra các quan hệ hình học trang 25