Đề 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 ppsx

72 447 0
Đề 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 ppsx

Đ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

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 [...]... điểm lẻ Thiết kế hệ thống kiểm tra cá c quan hệ hình học trang 34 Luận văn tốt nghiệp Return P thuộc đa giác 8 Kiểm tra quan hệ giữa đoạn thẳng và đa giác Các chương trình ứng dụng mơ tả các hình ảnh bằng hệ tọa độ thế giới thực, có thể là bất kỳ hệ tọa độ Descartes nào mà người dùng cảm thấy thuận tiện nhất Các hình ảnh được mơ tả trong hệ tọa độ thực sau đó sẽ được các hệ độ họa ánh xạ vào các hệ tọa... 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... 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 Luận văn tốt nghiệp 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 Trong phần này... • 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... 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 qt 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 qt 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 31 Luận văn tốt nghiệp Ở mỗi điểm giao dòng qt chuyển đổi hoặc đi vào hoặc đi ra... 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 + bn ) b a+b a+b a b a Thiết kế hệ thống kiểm tra cá c quan hệ hình học trang 11 Luận văn tốt nghiệp Hình a Hình b 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. .. 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 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... 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... đoạn đã có ) Nếu có giao điểm thì { - Đưa các tọa độ của các điểm cắt vào một danh sách - Sắp xếp cho hồnh độ các giao điểm tăng dần (Nếu xA = xB sắp xếp theo tung độ) Thiết kế hệ thống kiểm tra cá c quan hệ hình học trang 35 Luận văn tốt nghiệp } Bước 4: Thực hiện clipping - Nếu A và B đều nằm trong đa giác thì (1) Nếu số điểm cắt = 0, Return (AB nằm hồn tồn trong đa giác) - Ngược lại { Đoạn thẳng... (*) 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|.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 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ừ . 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. 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. 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ế

Ngày đăng: 30/07/2014, 17:20

Từ khóa liên quan

Mục lục

  • Được bắt đầu bởi hàm:

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

    • V. W = với i = 1,… ,n

      • II. CÁC ĐỐI TƯỢNG HÌNH HỌC VÀ SỰ TƯƠNG QUAN

        •  Đường thẳng

        •  Đường thẳ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

          • Cơ sở toán học:

          • Dựa vào hình vẽ trên, ta có:

          • SUBJ_LIST: a, 1, b, 2, c, 3, 4, d, 5, 6

            • Cơ sơ toán học:

              • Cho đến khi i=N-1

              • Begin

              • Ax + By + Cz + D = 0

              •  Tọa độ J(X2 , Y2 , Z2)

                • - Tính S là diện tích của đa giác đáy.

                • - Nhập h, chiều cao của hình lăng trụ.

                • - Tính thể tích đa giác V = S*h.

                • - Tính S là diện tích của đa giác đáy.

                • - Nhập h, chiều cao của hình chóp.

                • PHẦN IV: HƯỚNG DẪN SỬ DỤNG CHƯƠNG TRÌNH

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

Tài liệu liên quan