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

80 500 1
Thiết kế hệ thống kiểm tra các quan hệ hình học

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

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

Luận văn tốt nghiệp Luận văn tốt nghiệpLuận văn tốt nghiệp Luận văn tốt nghiệp Thiết kế hệ thống kiểm tra các quan hệ hình học Thiết kế hệ thống kiểm tra các quan hệ hình họcThiết kế hệ thống kiểm tra các quan hệ hình học Thiết kế hệ thống kiểm tra các quan hệ hình học trang trang trang trang 1 11 1 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 THƯ VIỆN ĐIỆN TỬ TRỰC TUYẾN Luận văn tốt nghiệp Luận văn tốt nghiệpLuận văn tốt nghiệp Luận văn tốt nghiệp Thiết kế hệ thống kiểm tra các quan hệ hình học Thiết kế hệ thống kiểm tra các quan hệ hình họcThiết kế hệ thống kiểm tra các quan hệ hình học Thiết kế hệ thống kiểm tra các quan hệ hình học trang trang trang trang 2 22 2 P P H H A A À À N N I I : : G G I I Ơ Ơ Ù Ù I I T T H H I I E E Ä Ä U 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ở toán học và không gian vector trong đồ họa máy tính, để xây dựng những thuật toá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 toá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 toá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 quá đơ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 toán trên mà nhiệm vụ của đề tài yêu cầu thực hiện là khi đưa vào giả thiết bài toán 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. THƯ VIỆN ĐIỆN TỬ TRỰC TUYẾN Luận văn tốt nghiệp Luận văn tốt nghiệpLuận văn tốt nghiệp Luận văn tốt nghiệp Thiết kế hệ thống kiểm tra các quan hệ hình học Thiết kế hệ thống kiểm tra các quan hệ hình họcThiết kế hệ thống kiểm tra các quan hệ hình học Thiết kế hệ thống kiểm tra các quan hệ hình học trang trang trang trang 3 33 3 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ề 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ư 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 THƯ VIỆN ĐIỆN TỬ TRỰC TUYẾN Luận văn tốt nghiệp Luận văn tốt nghiệpLuận văn tốt nghiệp Luận văn tốt nghiệp Thiết kế hệ thống kiểm tra các quan hệ hình học Thiết kế hệ thống kiểm tra các quan hệ hình họcThiết kế hệ thống kiểm tra các quan hệ hình học Thiết kế hệ thống kiểm tra các quan hệ hình học trang trang trang trang 4 44 4 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 yê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 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 toán họccá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 quá 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 ); THƯ VIỆN ĐIỆN TỬ TRỰC TUYẾN Luận văn tốt nghiệp Luận văn tốt nghiệpLuận văn tốt nghiệp Luận văn tốt nghiệp Thiết kế hệ thống kiểm tra các quan hệ hình học Thiết kế hệ thống kiểm tra các quan hệ hình họcThiết kế hệ thống kiểm tra các quan hệ hình học Thiết kế hệ thống kiểm tra các quan hệ hình học trang trang trang trang 5 55 5 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: 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 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); THƯ VIỆN ĐIỆN TỬ TRỰC TUYẾN Luận văn tốt nghiệp Luận văn tốt nghiệpLuận văn tốt nghiệp Luận văn tốt nghiệp Thiết kế hệ thống kiểm tra các quan hệ hình học Thiết kế hệ thống kiểm tra các quan hệ hình họcThiết kế hệ thống kiểm tra các quan hệ hình học Thiết kế hệ thống kiểm tra các quan hệ hình học trang trang trang trang 6 66 6 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); 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. THƯ VIỆN ĐIỆN TỬ TRỰC TUYẾN Luận văn tốt nghiệp Luận văn tốt nghiệpLuận văn tốt nghiệp Luận văn tốt nghiệp Thiết kế hệ thống kiểm tra các quan hệ hình học Thiết kế hệ thống kiểm tra các quan hệ hình họcThiết kế hệ thống kiểm tra các quan hệ hình học Thiết kế hệ thống kiểm tra các quan hệ hình học trang trang trang trang 7 77 7 • 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 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.  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: THƯ VIỆN ĐIỆN TỬ TRỰC TUYẾN Luận văn tốt nghiệp Luận văn tốt nghiệpLuận văn tốt nghiệp Luận văn tốt nghiệp Thiết kế hệ thống kiểm tra các quan hệ hình học Thiết kế hệ thống kiểm tra các quan hệ hình họcThiết kế hệ thống kiểm tra các quan hệ hình học Thiết kế hệ thống kiểm tra các quan hệ hình học trang trang trang trang 8 88 8  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. • 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: THƯ VIỆN ĐIỆN TỬ TRỰC TUYẾN Luận văn tốt nghiệp Luận văn tốt nghiệpLuận văn tốt nghiệp Luận văn tốt nghiệp Thiết kế hệ thống kiểm tra các quan hệ hình học Thiết kế hệ thống kiểm tra các quan hệ hình họcThiết kế hệ thống kiểm tra các quan hệ hình học Thiết kế hệ thống kiểm tra các quan hệ hình học trang trang trang trang 9 99 9 • 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ố nguyên 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. THƯ VIỆN ĐIỆN TỬ TRỰC TUYẾN Luận văn tốt nghiệp Luận văn tốt nghiệpLuận văn tốt nghiệp Luận văn tốt nghiệp Thiết kế hệ thống kiểm tra các quan hệ hình học Thiết kế hệ thống kiểm tra các quan hệ hình họcThiết kế hệ thống kiểm tra các quan hệ hình học Thiết kế hệ thống kiểm tra các quan hệ hình học trang trang trang trang 10 1010 10 P P H H A A À À N N I I I I : : N N O O Ä Ä I I D D U U N N G G 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 quát 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 toán học đến các thuật toán chương trình. I. LÝ THUYẾT CƠ SỞ TOÁN HỌC Các lý thuyết cơ sở toán học được sử dụng cho các thuật toá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ở toá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 toán học tất yếu để xây dựng các cấu trúc đồ họa máy tính. I I . . 1 1 . . G G i i ơ ơ ù ù i i t t h h i i e e ä ä u u v v e e à à v v e e c c t t o o r r : : Đ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: THƯ VIỆN ĐIỆN TỬ TRỰC TUYẾN [...]... 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: • Điểm - Đường thẳng Thiết kế hệ thống kiểm tra các quan hệ hình học trang 26 THƯ VIỆN ĐIỆN TỬ TRỰC TUYẾN Luận văn tốt nghiệp • Điểm - Mặt... giác 2 Sự tương quan giữa các đối tượng hình học: • Đ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 Thiết kế hệ thống kiểm tra các quan hệ hình học trang 25 THƯ VIỆN ĐIỆN TỬ TRỰC TUYẾN Luận văn tốt nghiệp 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... 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? Thiết kế hệ thống kiểm tra các quan hệ hình học trang 27 THƯ VIỆN ĐIỆN TỬ TRỰC TUYẾN Luận văn tốt nghiệp Kiểm tra hai mặt phẳng vuông 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... 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 toán trên các đối tượng hình học cơ bản Và từ những thuật toá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: •... bao đa giác là hình chữ nhật nhỏ nhất chứa toàn bộ đa giác Để xác đònh hình chữ nhật này ta lấy min hoặc max các tọa độ đỉnh của đa giác trong hệ tọa Thiết kế hệ thống kiểm tra các quan hệ hình học trang 35 THƯ VIỆN ĐIỆN TỬ TRỰC TUYẾN Luận văn tốt nghiệp độ Descartes rồi tăng, hoặc giảm 1 để đảm bảo hình chữ nhật là hình bao và đa giác hoàn toàn nằm trong nó Bước 2: Xác đònh danh sách các cạnh đa giác... bằng 0, từ phương trình (5) suy ra: (dy - cy) / (dx - cx) = (by - ay) / (bx - ax) Thiết kế hệ thống kiểm tra các quan hệ hình học (6) trang 31 THƯ VIỆN ĐIỆN TỬ TRỰC TUYẾN Luận văn tốt nghiệp Nghóa là các hệ số góc bằng nhau, nên các đường cha song song Nếu các đường cha trùng nhau thì các đoạn cũng có thể trùng nhau Để kiểm điều này, ta xem c có nằm trên đường cha đi qua a và b không Dựa vào phương... mặt phẳng 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 Trong phần này tôi trình bày cách thực hiện một vấn đề, được xây dựng theo logic nhằm mục đích để người đọc hoặc tham khảo có thể dễ dàng kiểm tra so sánh đối chiếu giữa thuật toán với cơ sở toán học III.1 CÁC QUAN HỆ HÌNH HỌC TRONG MẶT PHẲNG (2D) 1 Tính góc giữa hai đường thẳng Cơ sở toán học: Đây là ứng dụng quan trọng của... ta hình thành vector c, bằng cách thêm chiều của b c = |c|.ub Sau đó, kết hợp với phương trình (*) trên ta có: c = ( a.ub)ub 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 y c e b a x 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 ) Thiết kế hệ thống kiểm tra các quan hệ hình học trang... lẻ (odd - even algorithm) Thuật giải này sử dụng các giao điểm giữa các đường biên của vùng cần tô với các đường thẳng gọi là dòng quét và xác đònh các pixel nào nằm trong vùng tô màu giữa hai giao điểm liên tiếp, đó chính là các pixel dọc theo đường quét nằm giữa hai giao điểm và nằm bên trong đa giác Thiết kế hệ thống kiểm tra các quan hệ hình học trang 34 THƯ VIỆN ĐIỆN TỬ TRỰC TUYẾN Luận văn tốt... để 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á ua của a như sau: ua = 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); Thiết kế hệ thống kiểm tra các quan hệ hình học trang

Ngày đăng: 27/04/2013, 18:04

Hình ảnh liên quan

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

hi.

ết kế hệ thống kiểm tra các quan hệ hình họcThiết kế hệ thống kiểm tra các quan hệ hình họcThiết kế hệ thống kiểm tra các quan hệ hình học Xem tại trang 11 của tài liệu.
Thiết kế hệ thống kiểm tra các quan hệ hình họcThiết kế hệ thống kiểm tra các quan hệ hình họcThiết kế hệ thống kiểm tra các quan hệ hình học - Thiết kế hệ thống kiểm tra các quan hệ hình học

hi.

ết kế hệ thống kiểm tra các quan hệ hình họcThiết kế hệ thống kiểm tra các quan hệ hình họcThiết kế hệ thống kiểm tra các quan hệ hình học Xem tại trang 12 của tài liệu.
Thiết kế hệ thống kiểm tra các quan hệ hình học trang trang trang trang 16 16 16 16 - Thiết kế hệ thống kiểm tra các quan hệ hình học

hi.

ết kế hệ thống kiểm tra các quan hệ hình học trang trang trang trang 16 16 16 16 Xem tại trang 16 của tài liệu.
Thiết kế hệ thống kiểm tra các quan hệ hình họcThiết kế hệ thống kiểm tra các quan hệ hình họcThiết kế hệ thống kiểm tra các quan hệ hình học - Thiết kế hệ thống kiểm tra các quan hệ hình học

hi.

ết kế hệ thống kiểm tra các quan hệ hình họcThiết kế hệ thống kiểm tra các quan hệ hình họcThiết kế hệ thống kiểm tra các quan hệ hình học Xem tại trang 16 của tài liệu.
Thiết kế hệ thống kiểm tra các quan hệ hình họcThiết kế hệ thống kiểm tra các quan hệ hình họcThiết kế hệ thống kiểm tra các quan hệ hình học - Thiết kế hệ thống kiểm tra các quan hệ hình học

hi.

ết kế hệ thống kiểm tra các quan hệ hình họcThiết kế hệ thống kiểm tra các quan hệ hình họcThiết kế hệ thống kiểm tra các quan hệ hình học Xem tại trang 17 của tài liệu.
Thiết kế hệ thống kiểm tra các quan hệ hình họcThiết kế hệ thống kiểm tra các quan hệ hình họcThiết kế hệ thống kiểm tra các quan hệ hình học - Thiết kế hệ thống kiểm tra các quan hệ hình học

hi.

ết kế hệ thống kiểm tra các quan hệ hình họcThiết kế hệ thống kiểm tra các quan hệ hình họcThiết kế hệ thống kiểm tra các quan hệ hình học Xem tại trang 18 của tài liệu.
Thiết kế hệ thống kiểm tra các quan hệ hình họcThiết kế hệ thống kiểm tra các quan hệ hình họcThiết kế hệ thống kiểm tra các quan hệ hình học - Thiết kế hệ thống kiểm tra các quan hệ hình học

hi.

ết kế hệ thống kiểm tra các quan hệ hình họcThiết kế hệ thống kiểm tra các quan hệ hình họcThiết kế hệ thống kiểm tra các quan hệ hình học Xem tại trang 19 của tài liệu.
Thiết kế hệ thống kiểm tra các quan hệ hình họcThiết kế hệ thống kiểm tra các quan hệ hình họcThiết kế hệ thống kiểm tra các quan hệ hình học - Thiết kế hệ thống kiểm tra các quan hệ hình học

hi.

ết kế hệ thống kiểm tra các quan hệ hình họcThiết kế hệ thống kiểm tra các quan hệ hình họcThiết kế hệ thống kiểm tra các quan hệ hình học Xem tại trang 20 của tài liệu.
Thiết kế hệ thống kiểm tra các quan hệ hình họcThiết kế hệ thống kiểm tra các quan hệ hình họcThiết kế hệ thống kiểm tra các quan hệ hình học - Thiết kế hệ thống kiểm tra các quan hệ hình học

hi.

ết kế hệ thống kiểm tra các quan hệ hình họcThiết kế hệ thống kiểm tra các quan hệ hình họcThiết kế hệ thống kiểm tra các quan hệ hình học Xem tại trang 21 của tài liệu.
Thiết kế hệ thống kiểm tra các quan hệ hình họcThiết kế hệ thống kiểm tra các quan hệ hình họcThiết kế hệ thống kiểm tra các quan hệ hình học - Thiết kế hệ thống kiểm tra các quan hệ hình học

hi.

ết kế hệ thống kiểm tra các quan hệ hình họcThiết kế hệ thống kiểm tra các quan hệ hình họcThiết kế hệ thống kiểm tra các quan hệ hình học Xem tại trang 23 của tài liệu.
Thiết kế hệ thống kiểm tra các quan hệ hình họcThiết kế hệ thống kiểm tra các quan hệ hình họcThiết kế hệ thống kiểm tra các quan hệ hình học - Thiết kế hệ thống kiểm tra các quan hệ hình học

hi.

ết kế hệ thống kiểm tra các quan hệ hình họcThiết kế hệ thống kiểm tra các quan hệ hình họcThiết kế hệ thống kiểm tra các quan hệ hình học Xem tại trang 29 của tài liệu.
Thiết kế hệ thống kiểm tra các quan hệ hình họcThiết kế hệ thống kiểm tra các quan hệ hình họcThiết kế hệ thống kiểm tra các quan hệ hình học - Thiết kế hệ thống kiểm tra các quan hệ hình học

hi.

ết kế hệ thống kiểm tra các quan hệ hình họcThiết kế hệ thống kiểm tra các quan hệ hình họcThiết kế hệ thống kiểm tra các quan hệ hình học Xem tại trang 30 của tài liệu.
Thiết kế hệ thống kiểm tra các quan hệ hình họcThiết kế hệ thống kiểm tra các quan hệ hình họcThiết kế hệ thống kiểm tra các quan hệ hình học - Thiết kế hệ thống kiểm tra các quan hệ hình học

hi.

ết kế hệ thống kiểm tra các quan hệ hình họcThiết kế hệ thống kiểm tra các quan hệ hình họcThiết kế hệ thống kiểm tra các quan hệ hình học Xem tại trang 35 của tài liệu.
Thiết kế hệ thống kiểm tra các quan hệ hình học trang trang trang trang 41 41 41 41 - Thiết kế hệ thống kiểm tra các quan hệ hình học

hi.

ết kế hệ thống kiểm tra các quan hệ hình học trang trang trang trang 41 41 41 41 Xem tại trang 41 của tài liệu.
Thiết kế hệ thống kiểm tra các quan hệ hình họcThiết kế hệ thống kiểm tra các quan hệ hình họcThiết kế hệ thống kiểm tra các quan hệ hình học - Thiết kế hệ thống kiểm tra các quan hệ hình học

hi.

ết kế hệ thống kiểm tra các quan hệ hình họcThiết kế hệ thống kiểm tra các quan hệ hình họcThiết kế hệ thống kiểm tra các quan hệ hình học Xem tại trang 41 của tài liệu.
Thiết kế hệ thống kiểm tra các quan hệ hình họcThiết kế hệ thống kiểm tra các quan hệ hình họcThiết kế hệ thống kiểm tra các quan hệ hình học - Thiết kế hệ thống kiểm tra các quan hệ hình học

hi.

ết kế hệ thống kiểm tra các quan hệ hình họcThiết kế hệ thống kiểm tra các quan hệ hình họcThiết kế hệ thống kiểm tra các quan hệ hình học Xem tại trang 42 của tài liệu.
Thiết kế hệ thống kiểm tra các quan hệ hình họcThiết kế hệ thống kiểm tra các quan hệ hình họcThiết kế hệ thống kiểm tra các quan hệ hình học - Thiết kế hệ thống kiểm tra các quan hệ hình học

hi.

ết kế hệ thống kiểm tra các quan hệ hình họcThiết kế hệ thống kiểm tra các quan hệ hình họcThiết kế hệ thống kiểm tra các quan hệ hình học Xem tại trang 44 của tài liệu.
Thiết kế hệ thống kiểm tra các quan hệ hình học trang trang trang trang 44 44 44 44 - Thiết kế hệ thống kiểm tra các quan hệ hình học

hi.

ết kế hệ thống kiểm tra các quan hệ hình học trang trang trang trang 44 44 44 44 Xem tại trang 44 của tài liệu.
Thiết kế hệ thống kiểm tra các quan hệ hình họcThiết kế hệ thống kiểm tra các quan hệ hình họcThiết kế hệ thống kiểm tra các quan hệ hình học - Thiết kế hệ thống kiểm tra các quan hệ hình học

hi.

ết kế hệ thống kiểm tra các quan hệ hình họcThiết kế hệ thống kiểm tra các quan hệ hình họcThiết kế hệ thống kiểm tra các quan hệ hình học Xem tại trang 45 của tài liệu.
Thiết kế hệ thống kiểm tra các quan hệ hình học trang trang trang trang 47 47 47 47 - Thiết kế hệ thống kiểm tra các quan hệ hình học

hi.

ết kế hệ thống kiểm tra các quan hệ hình học trang trang trang trang 47 47 47 47 Xem tại trang 47 của tài liệu.
Thiết kế hệ thống kiểm tra các quan hệ hình học trang trang trang trang 48 48 48 48 - Thiết kế hệ thống kiểm tra các quan hệ hình học

hi.

ết kế hệ thống kiểm tra các quan hệ hình học trang trang trang trang 48 48 48 48 Xem tại trang 48 của tài liệu.
Thiết kế hệ thống kiểm tra các quan hệ hình họcThiết kế hệ thống kiểm tra các quan hệ hình họcThiết kế hệ thống kiểm tra các quan hệ hình học - Thiết kế hệ thống kiểm tra các quan hệ hình học

hi.

ết kế hệ thống kiểm tra các quan hệ hình họcThiết kế hệ thống kiểm tra các quan hệ hình họcThiết kế hệ thống kiểm tra các quan hệ hình học Xem tại trang 48 của tài liệu.
Thiết kế hệ thống kiểm tra các quan hệ hình họcThiết kế hệ thống kiểm tra các quan hệ hình họcThiết kế hệ thống kiểm tra các quan hệ hình học - Thiết kế hệ thống kiểm tra các quan hệ hình học

hi.

ết kế hệ thống kiểm tra các quan hệ hình họcThiết kế hệ thống kiểm tra các quan hệ hình họcThiết kế hệ thống kiểm tra các quan hệ hình học Xem tại trang 52 của tài liệu.
Thiết kế hệ thống kiểm tra các quan hệ hình họcThiết kế hệ thống kiểm tra các quan hệ hình họcThiết kế hệ thống kiểm tra các quan hệ hình học - Thiết kế hệ thống kiểm tra các quan hệ hình học

hi.

ết kế hệ thống kiểm tra các quan hệ hình họcThiết kế hệ thống kiểm tra các quan hệ hình họcThiết kế hệ thống kiểm tra các quan hệ hình học Xem tại trang 53 của tài liệu.
Thiết kế hệ thống kiểm tra các quan hệ hình họcThiết kế hệ thống kiểm tra các quan hệ hình họcThiết kế hệ thống kiểm tra các quan hệ hình học - Thiết kế hệ thống kiểm tra các quan hệ hình học

hi.

ết kế hệ thống kiểm tra các quan hệ hình họcThiết kế hệ thống kiểm tra các quan hệ hình họcThiết kế hệ thống kiểm tra các quan hệ hình học Xem tại trang 56 của tài liệu.
Thiết kế hệ thống kiểm tra các quan hệ hình họcThiết kế hệ thống kiểm tra các quan hệ hình họcThiết kế hệ thống kiểm tra các quan hệ hình học - Thiết kế hệ thống kiểm tra các quan hệ hình học

hi.

ết kế hệ thống kiểm tra các quan hệ hình họcThiết kế hệ thống kiểm tra các quan hệ hình họcThiết kế hệ thống kiểm tra các quan hệ hình học Xem tại trang 59 của tài liệu.
Thiết kế hệ thống kiểm tra các quan hệ hình họcThiết kế hệ thống kiểm tra các quan hệ hình họcThiết kế hệ thống kiểm tra các quan hệ hình học - Thiết kế hệ thống kiểm tra các quan hệ hình học

hi.

ết kế hệ thống kiểm tra các quan hệ hình họcThiết kế hệ thống kiểm tra các quan hệ hình họcThiết kế hệ thống kiểm tra các quan hệ hình học Xem tại trang 60 của tài liệu.
Thiết kế hệ thống kiểm tra các quan hệ hình họcThiết kế hệ thống kiểm tra các quan hệ hình họcThiết kế hệ thống kiểm tra các quan hệ hình học - Thiết kế hệ thống kiểm tra các quan hệ hình học

hi.

ết kế hệ thống kiểm tra các quan hệ hình họcThiết kế hệ thống kiểm tra các quan hệ hình họcThiết kế hệ thống kiểm tra các quan hệ hình học Xem tại trang 61 của tài liệu.
Thiết kế hệ thống kiểm tra các quan hệ hình họcThiết kế hệ thống kiểm tra các quan hệ hình họcThiết kế hệ thống kiểm tra các quan hệ hình học - Thiết kế hệ thống kiểm tra các quan hệ hình học

hi.

ết kế hệ thống kiểm tra các quan hệ hình họcThiết kế hệ thống kiểm tra các quan hệ hình họcThiết kế hệ thống kiểm tra các quan hệ hình học Xem tại trang 62 của tài liệu.
Thiết kế hệ thống kiểm tra các quan hệ hình họcThiết kế hệ thống kiểm tra các quan hệ hình họcThiết kế hệ thống kiểm tra các quan hệ hình học - Thiết kế hệ thống kiểm tra các quan hệ hình học

hi.

ết kế hệ thống kiểm tra các quan hệ hình họcThiết kế hệ thống kiểm tra các quan hệ hình họcThiết kế hệ thống kiểm tra các quan hệ hình học Xem tại trang 66 của tài liệu.

Từ khóa liên quan

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan