PH N IV - MÔ PH NG OPENGL
CH NG 11 – PH NG HO T Đ NG H TH NG B NG L PƯƠ
TRÌNH MFC S D NG TH VI N OPENGL. Ư
11.1. GI I THI U CHUNG V OPENGL.
11.1.1. OpenGL.
nh 11.1:OpenGL logo
OpenGL- là ch vi t t t c a Open Graphic Library- là m t th vi n đ h a t c đ ế ư
cao và đ c l p v i h th ng giao di n các h đi u hành. Th vi n này đ c phát tri n ư ượ
b i t p đoàn Silicon Graphic Library Inc. Và hi n nay OpenGLm t công c đ c s ượ
d ng r ng rãi trong các h đi u hành nh : win9x, win NT... ư
Ngày nay vi c ng d ng các công ngh đ h a vào cu c s ng đang phát tri n
m nh m . Trong k thu t, vi c s d ng các ng d ng c a OpenGL hay DirectX vào
vi c mô ph ng các c c u máy móc, các ho t đ ng c a các thi t b y móc, robot công ơ ế
nghi p tr c khi đi vào thi t k , th nghi m..b ng mô hình th c đang đ c r t nhà ch ướ ế ế ượ ế
t o quan tâm b i tính tr c quan đem l i khi xây d ng đ c các mô hình đ h a ho t ượ
đ ng trong không gian 3 chi u. đó cũng là lý do tôi ch n th vi n l p trình OpenGL ư
k t h p l p trình C++ đ y d ng bài toán mô ph ng cho quá trình s n xu t đang ti nế ế
nh.
11.1.2. Đ c đi m c a OpenGL.
OpenGl là m t th vi n đ h a r t l n, g m kho ng 150 hàm h tr m t s nh ư
năng c b n nh sau:ơ ư
Kh năng th hi n các hàn đ i t ng đ h a c b n. ượ ơ
OpenGL th th hi n đ cc c đ i t ng đ h a c b n nh : đi m, đo n ượ ượ ơ ư
th ng, đa giác, các đ ng cong hay m t cong b c hai. Ngoài ra còn m t s đ i t ng 3 ườ ư
chi u c b n khác nh : hình c u, nh tr , hình h p...T đó th y d ng nên các ơ ư
đ i t ng 3 chi u phút t p h n, th m chí th t đ nh nghĩa hay thi t k các ph n ượ ơ ế ế
m m h tr 3 chi u nh AutoCad, SolidWorks, 3Dmax. ư
Kh năng quan sát đ i t ng. ượ
c đ i t ng có th quan sát t nhi u góc đ khác nhau thông qua các phép bi n đ i ượ ế
v trí m t hay phép bi n đ i v trí v t cũng nh các phép chi u... ế ư ế
Kh năng đ nh màu s c v t li u đ i t ng. ượ
Cho phép th hi n màu s c đ i t ng m t cách đa d ngthu c tính v t li u. ượ
Kh năng t o hi u ng ánh sáng trong ch ng trình mô ph ng. ươ
Cho phép t o hi u ng ánh sáng nh th c t t o ra c m giác th t cho các mô hình và ư ế
khung c nh 3 chi u.
Kh năng t o khung c nh ph ng th c t OpenGL. ế
H tr các k thu t t o các khung c nh gi ng th c t nh : ế ư
-K thu t dán nh (texture mapping) đ t o các khung c nh th c t . ế
-K thu t s ng mù (fog) cho phép t o hi u ng nh m d n khi đ i t ng ươ ượ
chuy n đ ng xa kh i m t nhìn.
-K thu t tr n u (blending) t o các v t th trong m th nhìn xuyên qua
đ c.ượ
-K thu t lo i b răng c a (antialiasing). ư
Kh năng c i thi n t c đ OpenGL.
Cho phép c i thi n t c đ hi n th b ng k thu t danh sách hi n thì (display list)
Kh năng ch n các đ i t ng đ h a (selection and hitting derect). ượ
K thu t cho phép ch n các đ i t ng đ h a 3 chi u ng d ng trong k thu t ượ
ph ng va ch m c a v t th .
11.2. GI I THI U NGÔN NG L P TRÌNH VISUAL C++ VÀ NG D NG MFC.
Visual C++ m t trong các ngôn ng l p trình thu c dòng Visual Studio c a ng
Microsoft, phát tri n d a trên n n t ng ngôn ng l p trình h ng đ i t ng C ướ ượ ++.
Visual C++ ra đ i kho ng nh ng năm 1990 càng ngày càng đ c s d ng r ng rãi ượ
nh t c ng d ng trong k thu t nh l p trình nhúng, l p trình đi u khi nl p ư
trình ph ng. Vi c t o ra c giao di n ph c t p trình y đ p đ i v i Visual C ++
khá là đ n gi n, và đây chính là th m nh c a Visual Cơ ế ++ trong vi c tr giúp đ c l c cho
ng i l p trình khi xây d ng nh ng d án l n ho c trong k thu t l p trình h th ng.ườ
MFC (Microsoft Foundation Classes) th vi n c s ch a c l p (class) C++ư ơ
do Microsoft cung c p nh m đ t m t trình bao b c Windows API t o s thu n l i cao
cho ng i dùng trong vi c phát tri n ng d ng. Ngoài ra, MFC còn cung c p ki n trúcườ ế
View/Document giúp đ nh nghĩa c u trúc ch ng trình c u trúc tài li u cho trình ng ươ
d ng đ n gi n, uy n chuy n d phát tri n h n. Do đó MFC còn đ c xem m t ơ ơ ượ
khung ng d ng (application framework).
L p trình Windows v i MFC là k thu t l p trình s d ng b th vi n MFC đ ư
y d ng các trình ng d ng trong Windows (Window App) vàc d ng ng d ng khác
nh DLL, COM, ActiveX...ư
11.3. MÔ PH NG BÀI TN C N TH C HI N.
11.3.1. Cách t o m t Project MFC đ ph ng ho t đ ng.
c b c ti n hành nh sau:ướ ế ư
-Ch n File→New, ch n tab Projects, khi đó xu t hi n các Project đ c l p trình trên ượ
Visual C++ 6.0→Ch n MFC AppWizard(exe). Trong Project name, tên mu n đ t vào,
d “van”, và trong lacation ch n v trí l u Project v a t o. ư
nh 11.2: B t đ u thi t l p Project MFC. ế
-Ti p đó xu t hi n các h p tho i cho phép thi t l p đ c tính c a Project t o ra, c thế ế
nh sau:ư
B c 1ướ : Ch n Single Document Interface- đây là lo i giao di n đ n tài li u t i m t th i ơ
đi m, ch m t tài li u đ c m hi n hành, đ cho ng i dùng thao tác trên đó. ượ ườ
Trong tr ng h p này, do c n mô ph ng ho t đ ng c a m t h th ng hàn nên s d ngư
ki u tài li u này.
nh 11.3: Thi t l p 1ế
B c 2ướ : Do ng d ng không s d ng d li u nên trong m c Database Support ch n
None.
nh 11.4: Thi t l p 2.ế
B c 3ướ : Do khôngng tài li u ph c t p nên ch n None.