Thiết kế hệ thống kiểm tra các quan hệ hình học trong không gian 2D 3D - Pdf 42

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

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 toá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 toá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 yêu
cầu của đề tài.
Việc thực hiện đề tài còn mang ý nghóa đánh giá lại quá 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 lónh vực máy tính cũng như cơ sở toá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 toán học thực hiện
được, nhưng việc thể hiện thuật toá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 quý 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
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
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

II. 1. SƠ LƯC NGÔN NGỮ
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
Ở 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ề yê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 quát 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 yêu cầu của đề tài, cụ thể là về phương diện tính toán trong
những thuật toá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 quá 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ư

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;
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
point.y=100;
 Vẽ đường thẳng:
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);
Ngoà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

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…
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
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 nguyên 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
hoá 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.
 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.

 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.
• 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 đó:
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
 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);

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
{
dx,dy,dz : float;
} vector3D
Thiết kế hệ thống kiểm tra các quan hệ hình học trang 10
x
P
2

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

n
+ b
n
)
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.
Thiết kế hệ thống kiểm tra các quan hệ hình học trang 11
a
a-c
c
-c
Luận văn tốt nghiệp
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

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 hoá một
vector, và kết qủa gọi là vector đơn vò. Ví dụ dạng chuẩn hoá 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);

Một lớp đặc biệt của tổ hợp tuyến tính có vò trí quan trọng trong toá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
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 vuông 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

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:
Thiết kế hệ thống kiểm tra các quan hệ hình học trang 14

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

0
nếu a.b = 0

Lớn hơn 90
o
nếu a.b < 0
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

,c
y
), ta có
vector n vuông 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

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
hoàn toà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à vuông 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, vuông 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:
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

Q -A < 90
0
, nếu Q nằm phía ngoà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 ngoà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.
• 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 ngoà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-ngoà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
.

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 ở ngoà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, thoát ra khỏi thuật giải cắt, và
đoạn L hoàn toà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 20
w

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

• Từ đònh nghóa suy ra các tính chất đại số sau:
1. i x j = k
j x k = i
i x k = j
2. a x b = -b x b
Thiết kế hệ thống kiểm tra các quan hệ hình học trang 21
x-xx x -x- x -x-
y-yy y -y- y -y-
z-zz z -z- z -z-
Luận văn tốt nghiệp
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:

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

Phương trình mặt phẳng
Thiết kế hệ thống kiểm tra các quan hệ hình học trang 22
a x b
Thể tích a x b x c
a
b
c
ϕ
x-xx x -x- x -x-
y-yy y -y- y -y-
z-zz z -z- z -z-
Luận văn tốt nghiệp
Trong không gian, qua 3 điểm A (x
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

-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

)*(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 quát:
a

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


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

• Đ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 ngoà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 ngoà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.
Thiết kế hệ thống kiểm tra các quan hệ hình học trang 25

Trích đoạn -Kiểm tra quan hệ Điể m Đườngthẳng -Kiểm tra quan hệ Điể m Mặt phẳng -Kiểm tra quan hệ Đườngthẳn g Mặt phẳng Kiểm tra quan hệ Mặt phẳn g Mặt phẳng MỘT SỐ KIỂU DỮ LIỆU ĐƯỢC SỬ DỤNG TRONG CHƯƠNG TRÌNH
Nhờ tải bản gốc

Tài liệu, ebook tham khảo khác

Music ♫

Copyright: Tài liệu đại học © DMCA.com Protection Status