Thiết kế hệ thống kiểm tra các quan hệ hình học trong không gian 2d và 3d

97 0 0
Thiết kế hệ thống kiểm tra các quan hệ hình học trong không gian 2d và 3d

Đ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

BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC PHAN THIẾT BÁO CÁO TỔNG KẾT ĐỀ TÀI NGHIÊN CỨU KHOA HỌC SINH VIÊN THIẾT KẾ HỆ THỐNG KIỂM TRA CÁC QUAN HỆ HÌNH HỌC TRONG KHƠNG GIAN 2D VÀ 3D Khoa: Cơng nghệ Thơng tin Nhóm sinh viên: Huỳnh Ngọc Huy Hoàng Lê Văn Khải Nguyễn Anh Hoàng Linh Giảng viên hướng dẫn: ThS Lê Thanh Bình Thuận, tháng 10 năm 2018 BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC PHAN THIẾT BÁO CÁO TỔNG KẾT ĐỀ TÀI NGHIÊN CỨU KHOA HỌC SINH VIÊN THIẾT KẾ HỆ THỐNG KIỂM TRA CÁC QUAN HỆ HÌNH HỌC TRONG KHƠNG GIAN 2D VÀ 3D Khoa: Cơng nghệ Thơng tin Nhóm sinh viên: Huỳnh Ngọc Huy Hoàng Lê Văn Khải Nguyễn Anh Hoàng Linh Giảng viên hướng dẫn: ThS Lê Thanh Bình Thuận, tháng 10 năm 2018 Trong lĩnh vực công nghệ máy tính cơng nghệ thơng tin có bước phát triển nhảy vọt, hỗ trợ vào lĩnh vực sống xã hội, sản phẩm công nghệ thông tin biến đổi hàng ngày, hàng Trong lĩnh vực tốn học, sản phẩm cơng nghệ thông tin hỗ trợ đắc lực cho việc học tập nghiên cứu Đề tài thực 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ể Về góc độ học tập, nghiên cứu tơi thấy đề tài giúp hiểu rõ thêm kiến thức phần đồ họa máy tính cho vấn đề kiểm tra thực số tốn hình học thêm phong phú hơn, tạo thêm phần hấp dẫn môn học Trong thời gian thực đề tài thực yêu cầu đề tài Việc thực đề tài mang ý nghĩa đánh giá lại trình học tập, nghiên cứu Nên mặt tinh thần cố gắng tìm hiểu, nghiên cứu, chuẩn bị chu đáo cho việc thực Nhưng tiếp thu có giới hạn định, lĩnh vực máy tính sở tốn học rộng lớn, khơng gian diễn dịch vơ hạn, thực ý tưởng toán học thực được, việc thể thuật tốn máy tính có vấn đề khó thể thực hiện, đề tài chắn cịn nhiều thiếu sót định Mong q Thầy cơ, Anh chị 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 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 đề tài Nhiệm vụ thực đề tài: Thiết kế hệ thống kiểm tra 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ể môi trường Visual C++ Đề tài áp dụng kiến thức sở tốn học khơng gian vector đồ họa máy tính, để xây dựng thuật tốn kiểm tra quan hệ hình học Để dễ dàng tơi xin trình bày ví dụ điển sau: Ví du: cho đường thẳng a qua hai điểm A B đường thẳng b qua hai điểm C D khơng gian 2D hay 3D hai đường thẳng có tương quan với nhau, trùng nhau, cắt với góc đó, chéo (trong khơng gian 3D), hay song song… Sau đưa vào điều kiện giả thiết ban đầu (Input), chương trình thực đưa kết kiểm tra (output) giả thiết hai đường thẳng a b tương quan với nhau? Cắt góc độ, song song, hay trùng Đó mặt thuật tốn chương trình kiểm tra, tác vụ thực vấn đề Với toán đưa kết luận với dịng thơng điệp thấy đề tài trở nên đơn giản không phong phú hấp dẫn qua ý kiến người đọc tham khảo Một tác vụ đồng thời với toán mà nhiệm vụ đề tài yêu cầu thực đưa vào giả thiết toán chẳng hạn hai điểm A B với tọa độ xác định đó, qua hai điểm thực vẽ lên đoạn thẳng qua hai điểm A B Từ thấy vấn đề cách trực quan hơn, hay vẽ góc hai đường thẳng, với thể đề tài trở nên hấp dẫn phong phú hơn, tất nhiên vấn đề khơng khó khăn cho người thực đề tài Trong phần nội dung tơi trình bày chi tiết đề 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 “THIẾT KẾ HỆ THỐNG KIỂM TRA CÁC QUAN HỆ HÌNH HỌC“, tơi trình bày ví dụ u cầu nhiệm vụ để thực tác vụ kiểm tra vấn đề đề tài Để thực vấn đề tơi nghiên cứu thực môi trường ngôn ngữ Visual C++ Visual C++ phần mềm lập trình hướng đối tượng phát triển sở ngơn ngữ lập trình C C++ Ở thể đề tài ngôn ngữ Visual C++ lẽ ngôn ngữ xem ngôn ngữ hỗ trợ (support user) mạnh phổ biến Cùng mục đích sâu xa đề tài sau ngơn ngữ xây dựng ý tưởng đề tài “THIẾT KẾ HỆ THỐNG KIỂM TRA CÁC QUAN HỆ HÌNH HỌC“ ngày thêm đầy đủ, phong phú, hấp dẫn ứng dụng mang tính thiết thực Tơi nghiên cứu tìm hiểu tổng qt ngơn ngữ Visual C++, thực chương trình điển hình ngơn ngữ lập trình hướng đối tượng Và phần tìm hiểu phần thực yêu cầu đề tài, cụ thể phương diện tính tốn thuật toán thể trực quan đồ hoạ máy tính ngơn ngữ Visual C++ Trong Visual C++ phần đồ họa thể 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 ngơn ngữ Visual C++ có hỗ trợ cho việc vẽ đối tượng hình học chuột Nhưng ngôn ngữ thực với đối tượng hình học 2D, đối tượng hình học 3D chưa có, cần phải tự thiết kế Trong q trình nghiên cứu, nhận thấy ngôn ngữ Visual C++ có thư viện OPENGL thư viện API hỗ trợ cho việc thực chương trình đồ họa, 2D 3D mạnh, phần kiểm tra quan hệ hình học phần 3D thực OPENGL Từ chuyển hướng sang nghiên cứu OPENGL để thực cho phần 3D Để hiểu thực khó khăn khơng ta bắt đầu nghiên cứu làm quen với ngôn ngữ Visual C++ Sau nghiên cứu hiểu yếu tố OPENGL tơi có nhận xét OPENGL ứng dụng để thực chương trình đồ họa máy tính hấp dẫn đẹp mắt Khi cài cách sử dụng có phần dễ dàng hơn, cần tìm hiểu số hàm thư viện hàm thành viên OPENGL đáp ứng yêu cầu Còn việc thực cài đặt theo lý thuyết đồ họa máy tính phép biến hình, thiết lập chế độ hình, khởi tạo đồ họa, setviewport, tạo 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 OPENGL hỗ trợ hầu hết OpenGL định nghĩa “giao diện phần mềm cho phần cứng đồ họa ” Thực chất, OpenGL thư viện hàm đồ họa, xem 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 ứng dụng 3-D phức tạp với độ tinh vi, xác cao, mà người thiết kế đánh vật với núi công thức toán học mã nguồn phức tạp Và OpenGL tiêu chuẩn công nghiệp, ứng dụng tạo từ dùng phần cứng hệ điều hành khác Nhận xét OPENGL thấy OPENGL thư viện đồ họa WINDOWS ta thấy OPENGL khơng thực ngơn ngữ Visual C++ mà cịn cho phép thực Visual Basis , Borland C++ II GIỚI THIỆU CÁC HÀM CỦA NGÔN NGỮ ĐƯỢC SỬ DỤNG a Các hàm lớp CDC (Class Device Context) Trong CDC có nhiều hàm thành viên phục vụ cho trình kết xuất hình ảnh thiết bị Trong phần thực đề tài, xin đưa hàm sử dụng đề tài Vẽ điểm: SetPixel ( int x , int y , int color ); Hàm thuộc lớp CClientDC phần màu sử dụng macro RGB(red,green,blue) Ví du: Để vẽ điểm , ta thực sau: CClientDC dc(this); dc.SetPixel (100,100,GRB(0,0,0); Để thể tọa độ điểm hệ trục tọa độ hai chiều, Visual C++ dùng lớp CPoint, đối tượng thuộc lớp thể hai thành phần x y Ví dụ ta khai báo điểm point sau: CPoint point point.x=100; point.y=100; Vẽ đường thẳng: Line (int x1, int y1, int x2, int y2); Hàm thuộc lớp CClientDC Ví dụ: Để vẽ đường thẳng ta thực bước sau CClientDC dc(this); dc.Line(x1,y1,x2,y2); Ngoài việc vẽ đường thẳng cịn sử dụng hai hàm sau: MoveTo(int x, int y); Hàm dùng để di chuyển trỏ đến tọa độ x,y hình LineTo(int x, int y); Hàm dùng để vẽ đường thẳng từ điểm hành đến điểm x, y Cả hai hàm thuộc lớp CClientDC, việc sử dụng 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 thuộc lớp CclientDC Dùng để vẽ hình chữ nhật có tọa độ góc trái (x1,y1) tọa độ góc phải (x2,y2) Cú pháp vẽ hình chữ nhật sau: CClientDC dc(this); dc.Rectangle(x1, y1, x2, y2); Vẽ hình Ellipse: Ellipse(int x1,int y1,intx2,int y2); Hàm có tham tương tự tham số hình chữ nhật, hàm thuộc lớp CClientDC Cú pháp vẽ hình Ellipse 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 dùng để tô màu vùng giới hạn đường biên khép kín Hàm 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ùng kín bao quanh điểm Cú pháp hàm sau: CClientDC dc(this); dc.FloodFill(x, y, color); Tạo đường vẽ: CreatePen(typeline, width, color); Để tạo đường vẽ ứng dụng vẽ ta xét hàm CreatePen lớp Cpen, hàm có dạng sau: Cpen *pPen=new Cpen; pPen->CreatePen(typeline, width, color); Trong : • Tham số typeline kiểu đường vẽ, có giá trị định nghĩa sau: PS-SOLID PS-DASH Đường thẳng đồng Đường thẳng gồm gạch ngang đứt nét PS-DOT Đường thẳng gồm nét chấm đứt PS-DASDOT Đường thẳng gồm gạch ngang chấm đứt PS-DASHDOTDOT Đường thẳng gồm gạch ngang chấm đứt PS-NULL Đường thẳng vô hiệu lực không vẽ PS-INSIDEFRAME Đường thẳng nằm bên đường viền • Tham số width cho độ rộng nét vẽ tính pixel • Tham số color cho màu vẽ b Các hàm thư viện OpenGL OpenGL gồm hàm, hạt nhân có 115 hàm Tên hàm bắt đầu GL Windows NT hỗ trợ chủng loại hàm khác, bao gồm thư viện OpenGL utility(tên hàm bắt đầu GLU), thư viện OpenGL auxiliary(tên hàm bắt đầu AUX), hàm”WGL” (tên hàm bắt đầu WGL), 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ế hình dạng khác nhau, tạo hiệu chiếu sáng, kết hợp antialiasing gán cấu trúc, thực biến đổi ma trận… Do hàm thể nhiều dạng khác tùy thuộc vào loại liệu mà chúng tiếp nhận, nên thực tế có 300 nguyên mẫu (prototype) hàm  Thư viện OpenGL utility gồm hàm cao cấp Các hàm đơn giản hố việc sử dụng hình ảnh cấu trúc, thực việc biến đổi tọa độ mức cao, hỗ trợ tesselation đa giác, biểu diễn đối tượng có sở đa giác hình cầu, hình trụ hình dĩa  Thư viện OpenGl auxiliary gồm hàm đặc biệt dùng đơn giản hóa ví dụ lập trình sách dẫn lập trình OpenGL Các hàm phụ thuộc platform thực nhiệm vụ quản ký cửa sổ, điều khiển xuất/nhập, vẽ đối tượng 3D định Do hàm có mực đích thiết minh nên khơng dùng 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 chọn lựa ngữ cảnh biểu diễn, tạo bitmap font, hàm dùng Windows NT  Cuối cùng, hàm Win32 API dùng giải định dạng điểm ảnh tạo đệm đơi Trong phần này, tơi trình bày số hàm sử dụng đề tài Hàm vẽ điểm, đường, đa giác: Được bắt đầu hàm: glBegin (Glenum mode) Để bắt đầu đỉnh primitive, tham số mode kiểu primitive Tham số mode có giá trị sau: - Tính S diện tích đa giác đáy - Nhập h, chiều cao hình chóp - Tính thể tích V= S*h /3 12- Tính thể tích hình nón: Giải thuật: - Nhập R, bán kính đáy hình nón - Nhập h, chiều cao hình nón - Tính thể tích V = S*h / = Pi*R2*h / PHẦN III: THIẾT KẾ CHƯƠNG TRÌNH I THIẾT KẾ GIAO DIỆN THỰC HIỆN KIỂM TRA CÁC QUAN HỆ HÌNH HỌC Thiết kế giao diện cho trình thực ứng dụng việc kiểm tra quan hệ hình học, cập nhật thơng số kích thước vùng vùng Client: Lớp CMainFrame : Có chức tạo hình vùng Client Lớp CApp : Có chức thực ứng dụng kiểu đơn tài liệu (SDI) Lớp CView : Có chức hiển thị thực cuả chương trình kiểm tra quan hệ hình học Lớp CDoc : Có chức xử lý việc lưu trữ liệu Lớp CDialog : Có chức nhập, xuất kiện II MỘT SỐ KIỂU DỮ LIỆU ĐƯỢC SỬ DỤNG TRONG CHƯƠNG TRÌNH a Các đỉnh đa giác P phẳng lưu trữ danh sách kiểu CPoint P[0].x, P[0].y; P[1].x,P[1].y; … Với đỉnh cuối nhận biết số đa giác kèm theo b Kiểu liệu điểm không gian ba chiều (3D), khai báo sau: typedef struct { long x; long y; long z; } point3d ; c Cấu trúc liệu mô tả Wireframe bao gồm: +Danh sách đỉnh chứa tọa độ đỉnh +Danh sách cạnh chứa cặp đỉnh nối cạnh typedef struct { int NumV; int NumE; point3d vert[20]; int edge[30][2]; } Wireframe; Kiểu liệu dùng để tạo danh sách cạnh từ đỉnh liên tiếp nhau: typedef struct { CPoint A; CPoint B; } TypeListEdge; Kiểu liệu lưu trữ điểm, có kèm theo cờ để phân biệt loại điểm khác (điểm giao đa giác, điểm duyệt hay chưa duyệt; hay đỉnh đa giác) dùng thủ tục kiểm tra quan hệ hai đa giác, khai báo sau: typedef struct { CPoint P; int CFlag; } ListPoint; III CÁCH TỔ CHỨC CÁC HÀM TRONG 2D Các hàm giới thiệu nhóm lại thành nhóm giúp cho việc theo dõi dễ dàng 1- Những hàm sử dụng lớp CkiemTra2DView.cpp Construction/destruction lớp CView CKiemTra2DView:: CKiemTra2DView() CKiemTra2DView:: ~CKiemTra2DView() Các hàm tạo cửa sổ, vẽ lớp CView BOOL CKiemTra2DView::PreCreateWindow(CREATESTRUCT& cs) void CKiemTra2DView:: OnDraw(CDC* pDC)// Debug void CKiemTra2DView::AssertValid() const void CKiemTra2DView::Dump(CDumpContext& dc) const CTestHHDoc* CKiemTra2DView::GetDocument() Các hàm phục vụ vẽ 2D void CKiemTra2DView::OnVediem() void CKiemTra2DView::OnUpdateVediem(CCmdUI* pCmdUI) void CKiemTra2DView::OnVeduongthang1() void CKiemTra2DView::OnUpdateVeduongthang1(CCmdUI* pCmdUI) void CKiemTra2DView::OnVeduongthang2() void CKiemTra2DView::OnUpdateVeduongthang1(CCmdUI* pCmdUI) void CKiemTra2DView:: OnVedagiac1() void CKiemTra2DView::OnUpdateVedagiac1(CCmdUI* pCmdUI) void CKiemTra2DView::OnVedagiac2() void CKiemTra2DView::OnUpdateVedagiac2(CCmdUI* pCmdUI) Các hàm liên quan đến mouse void CKiemTra2DView::OnLButtonDown(UINT nFlags, CPoint point) void CKiemTra2DView::OnLButtonUp(UINT nFlags, CPoint point) void CKiemTra2DView::OnRButtonDown(UINT nFlags, CPoint point) void CKiemTra2DView::OnMouseMove(UINT nFlags, CPoint point) Tính Max ,Min giá trị(thủ tục tìm giá trị lớn hai giá trị) int Max(int x, int y) { int tam; tam=(x>=y)? x:y; return tam; } int Min(int x, int y) { int tam; tam=(x>=y)? y:x; return tam; } Các hàm kiểm tra điểm P bên / bên đa giác BOOL TestPoint_Boundary (CPoint P,UINT n,CPoint dayP[]) BOOL Giaodiem(CPoint P,UINT n,CPoint dayP[]) void CKiemTra2DView::OnTestDiem() Các hàm kiểm tra quan hệ đường thẳng double LengthOfSegment(CPoint A,CPoint B) void CKiemTra2DView::OnTinhgoc() void CKiemTra2DView::OnHinhchieu() UINT Intersect(CPoint A,CPoint B,CPoint C,CPoint D,CPoint &M) Các hàm kiểm tra quan hệ đoạn thẳng đa giác void Trungdiem(CPoint A,CPoint B,CPoint &TDiem) void ClippingLine(CPoint A,CPoint B,UINT nDinh,CPoint DGiac[], CPoint DsachDcat[],UINT &SoDcat) void CKiemTra2DView::OnDoanthang_Dagiac() Hàm kiểm tra Đa giác lồi hay lõm? long Toado(CPoint A, CPoint B) void CKiemTra2DView:: OnTest2Dagiac() Hàm tính diện tích đa giác void CKiemTra2DView::OnTinhdientich() Nhóm hàm có liên quan tới phép chiếu song song phối cảnh void InitProjection(double &t1,double &t2,double &t3,double &t4,double &t5,double &t6,double &t7,double &t8,float xRot,float yRot) void Projection(BOOL PhepChieu ,float xRot,float yRot, Wireframe &WF) void CKiemTra2DView:: OnChieuPhoiCanh() void CKiemTra2DView::OnUpdateChieuPhoiCanh(CCmdUI* pCmdUI) void CKiemTra2DView:: OnChieuSongSong() void CKiemTra2DView::OnUpdateChieuSongSong(CCmdUI* pCmdUI) Nhóm hàm liên quan đến thao tác hình lăng trụ void CKiemTra2DView:: OnLangTru() void CKiemTra2DView::OnChieuLangTru() void CKiemTra2DView::OnKeyDown(UINT nChar, UINT nRepCnt, UINT nFlags) Nhóm hàm liên quan đến thao tác hình chóp void CKiemTra2DView::OnNhapDinhChop() void CKiemTra2DView:: OnChieu_Chop() Nhóm hàm liên quan đến thao tác hình nón void CKiemTra2DView::OnHinhnon() void CKiemTra2DView::OnChieu_Non() Các hàm kiểm tra tính đồng phẳng đa giác void CKiemTra2DView::OnNhapDagiac() void CKiemTra2DView::PlanarPolygon() Tô màu đa giác void CKiemTra2DView::OnTomaudagiac() Kiểm tra quan hệ đa giác void CKiemTra2DView::OnTest2Dagiac() 2- Những hàm sử dụng lớp CKiemTra2DDoc.cpp CkiemTra2DDoc::CkiemTra2DDoc() CkiemTra2DDoc::~ CkiemTra2DDoc() BOOL CkiemTra2DDoc::OnNewDocument() void CkiemTra2DDoc::Serialize(CArchive& ar) IV CÁCH TỔ CHỨC CÁC HÀM TRONG OPENGL 3D Trong phần kiểm tra 3D, có phương thúc xử lý thao tác sau: 1- Những hàm sử dụng lớp CkiemTra3Dview Construction/destruction lớp CView CKiemTra3DView::CKiemTra3DView() CKiemTra3DView::~CKiemTra3DView() Các hàm tạo cửa sổ, vẽ lớp CView BOOLCKiemTra3DView::PreCreateWindow(CREATESTRUCT& cs) void CKiemTra3DView::OnDraw(CDC* pDC) void CKiemTra3DView::AssertValid() const void CKiemTra3DView::Dump(CDumpContext& dc) const Hàm tạo ngữ cảnh để phù hợp với việc vẽ vật thể 3D int CKiemTra3DView::OnCreate(LPCREATESTRUCT pCreateStruct) Các hàm điều chỉnh kích thước, tạo màu void CKiemTra3DView::OnDestroy() void CKiemTra3DView::OnSize(UINT nType, int cx, int cy) BOOL CKiemTra3DView::OnEraseBkgnd(CDC* pDC) void CKiemTra3DView::GLResize(GLsizei w, GLsizei h) void CKiemTra3DView::GLSetupRC() void CKiemTra3DView::Khoitaopalette() BOOL CKiemTra3DView::OnQueryNewPalette() void CKiemTra3DView::OnPaletteChanged(CWnd* pFocusWnd) Hàm nhấn phím mũi tên để quan sát vật thể void CkiemTra3Dview::OnKeyDown(UINT nChar, UINT nRepCnt, INT Flags) Các hàm thực thao tác nhập tọa độ cho mặt phẳng, điểm, đường thẳng void CKiemTra3DView:: OnNhapMPhang1() void CKiemTra3DView:: OnNhapMPhang2() void CKiemTra3DView:: OnNhapTDDiem() void CKiemTra3DView:: OnNhapTDDuong1() void CKiemTra3DView:: OnNhapTDDuong2() Các hàm thực thao tác kiểm tra, tính tốn đối tượng điểm, đường thẳng, mặt phẳng void CKiemTra3DView:: OnKtraDiemMP() void CKiemTra3DView:: OnVeGiao2MP() void CKiemTra3DView:: OnKtraDiem_Duong() void CKiemTra3DView:: OnKtra2DThang() void CKiemTra3DView:: OnKtraDuong_MP() void CKiemTra3DView:: OnTinhGoc2MP() void CKiemTra3DView:: OnTinhGocDuong_MP() void CKiemTra3DView:: OnTinhGoc2DT() void CKiemTra3DView:: OnTinhKCDiem_Duong() void CKiemTra3DView:: OnTinhKC2Duong() void CKiemTra3DView:: OnTinhKC2MP() void CKiemTra3DView:: OnDiemDongPhang() void CKiemTra3DView:: Ve_Hai_MP() void CKiemTra3DView:: On2MPhang() void CKiemTra3DView:: GT_hai_mp1() void CKiemTra3DView:: GT_hai_mp3() void CKiemTra3DView:: OnVe_KC_Diem_MP() void CKiemTra3DView:: OnTinh_KC_Diem_MP() void CKiemTra3DView:: Ve_Diem_MP() Các hàm thực việc vẽ, demo vật thể void CKiemTra3DView:: GLRenderScene() void CKiemTra3DView:: Cube() void CKiemTra3DView:: HinhChop() void CKiemTra3DView:: Wireframchop() void CKiemTra3DView:: OnCube() void CKiemTra3DView:: Onscence() void CKiemTra3DView:: OnHinhchop() void CkiemTra3Dview:: OnWireframWireframchop() Hàm thực thao tác xố hình void CKiemTra3DView:: OnClearScreen() 2- Những hàm sử dụng lớp CkiemTra3Ddoc CkiemTra3DDoc:: CkiemTra3DDoc() CkiemTra3DDoc:: ~ CkiemTra3DDoc() BOOL CkiemTra3DDoc:: OnNewDocument() void CkiemTra3DDoc:: Serialize(CArchive& ar) PHẦN IV: HƯỚNG DẪN SỬ DỤNG CHƯƠNG TRÌNH Trong phần này, đề cập cách sử dụng thao tác việc kiểm tra quan hệ hình học phần 2D 3D I Giao diện phần 2D Màn hình giao diện chương trình, người sử dụng xem thơng tin chương trình chọn thao tác kiểm tra 2D 3D Giao diện bao gồm thao tác: Kiểm tra 2D Kiểm tra 3D Đề tài Thốt chương trình Màn hình làm việc phần 2D, bao gồm đề mục thao tác 2D, thao tác 3D thao tác xử lý tương ứng Người sử dụng dùng phím Enter hay tổ hợp phím để chọn thao tác phù hợp Trong phần kiểm tra 2D bao gồm đối tượng điểm, đường thẳng, đa giác thao tác kiểm tra tương ứng với đối tượng hình học Màn hình làm việc người dùng chọn thao tác kiểm tra đối tượng hình học II Giao diện phần 3D Trong phần 3D, xin giới thiệu số hình ảnh demo chương trình Kiểm tra điểm có đồng phẳng với mặt phẳng hay khơng? Vẽ vật thể phụ thuộc vào yêu cầu người dùng III Đề nghị hướng phát triển Tạo thêm chức kích hoạt lại đối tượng hình học thể vùng Client như: Kéo giản kích thước Dịch chuyển đối tượng tuỳ ý Cập nhật lại liệu cho vị trí Từ tương quan đựơc thiết kế đề tài này, xây dựng lên nhiều tốn hình học khác TÀI LIỆU THAM KHẢO  [1] Lê Tấn Hùng, Huỳnh Quyết Thắng, Kỹ thuật đồ họa, Nhà xuất Khoa Học Kỹ Thuật 2000 [2] Lê Minh Trí, Kỹ lập trình Windows Visual C++ 6.0 (Tập 2), Nhà xuất Thanh Niên 2001 [3] Dương Quang Thiện, Lập trình Windows dùng Visual C++ 5.0 MFC (Tập 1, 3), Nhà xuất Thống Kê, 1998 [4] Dương Quang Thiện, Nhập mơn lập trình Windows dùng Visual C++, Nhà xuất Thống Kê, 1998 [5] Trần Quốc Bình, Học Visual C++ 21 ngày, Nhà xuất Mũi Cà Mau [6] FrancisS Hill, Jr, Computer Graphics, Nhà xuất MacMillan, 1990 [7] Richard S Wright, Jr , Michael Sweet, OpenGL SuperBible, Waite Group Press, 1996 [8] David J Kruglinski, Inside Visual C++ (Fourth Edition), Microsoft Press, 1997

Ngày đăng: 27/07/2023, 23:22

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

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

Tài liệu liên quan