I.THIẾT KẾ GIAO DIỆN THỰC HIỆN KIỂM TRA CÁC QUAN HỆ HÌNH HỌC II.MỘT SỐ KIỂU DỮ LIỆU ĐƯỢC SỬ DỤNG TRONG CHƯƠNG TRÌNH

Một phần của tài liệu THIẾT KẾ HỆ THỐNG KIỂM TRA CÁC QUAN HỆ HÌNH HỌC TRONG 3D (Trang 45 - 48)

quan hệ hình học, cập nhật các thông số về kích thước vùng của vùng Client:

Lớp CMainFrame : Có chức năng tạo màn hình vùng Client.

Lớp CApp : Có chức năng thực hiện ứng dụng kiểu đơn tài liệu (SDI).

Lớp CView : Có chức năng hiển thị những hiện thực cuả chương trình kiểm tra các quan hệ hình học.

Lớp CDoc : Có chức năng xử lý việc lưu trữ dữ liệu.

Lớp CDialog : Có chức năng nhập, xuất dữ kiện.

II. MỘT SỐ KIỂU DỮ LIỆU ĐƯỢC SỬ DỤNG TRONG CHƯƠNG TRÌNH

a. Các đỉnh của đa giác P phẳng được lưu trữ lần lượt trong danh sách kiểu CPoint như P[0].x, P[0].y; P[1].x,P[1].y; …. Với đỉnh cuối được nhận biết bởi chỉ số đa giác kèm theo.

b. Kiểu dữ liệu điểm trong không gian ba chiều (3D), được khai báo như sau:

typedef struct { long x; long y; long z; } point3d ;

c. Cấu trúc dữ liệu mô tả Wireframe bao gồm: +Danh sách đỉnh chứa tọa độ các đỉnh

+Danh sách cạnh chứa các cặp đỉnh nối cạnh đó. typedef struct { int NumV; int NumE; point3d vert[20]; int edge[30][2]; } Wireframe;

Kiểu dữ liệu dùng để tạo danh sách cạnh từ các đỉnh liên tiếp nhau: typedef struct { CPoint A; CPoint B; } TypeListEdge;

Kiểu dữ liệu lưu trữ các điểm, có kèm theo cờ để phân biệt các loại điểm khác nhau (điểm giao nhau giữa 2 đa giác, điểm này đã được duyệt hay chưa duyệt; hay đỉnh của đa giác) được dùng trong thủ tục kiểm tra quan hệ hai đa giác, được khai báo như sau:

typedef struct {

CPoint P;

int CFlag;

} ListPoint;

III. CÁCH TỔ CHỨC CÁC HÀM TRONG OPENGL 3D

Trong phần kiểm tra trong 3D, có các phương thúc xử lý các thao tác như sau:

1. Những hàm được sử dụng trong lớp CkiemTra3Dview

 Construction/destruction lớp CView

CKiemTra3DView::CKiemTra3DView() CKiemTra3DView::~CKiemTra3DView()

 Các hàm tạo cửa sổ, vẽ của 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ẽ các 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 nền 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 các 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 hiện cá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 hiện các thao tác kiểm tra, tính toán giữa các đố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 hiện việc vẽ, demo các 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 hiện thao tác xoá màn hình void CKiemTra3DView:: OnClearScreen()

2. Những hàm được sử dụng trong lớp CkiemTra3Ddoc

CkiemTra3DDoc:: CkiemTra3DDoc() CkiemTra3DDoc:: ~ CkiemTra3DDoc() BOOL CkiemTra3DDoc:: OnNewDocument() void CkiemTra3DDoc:: Serialize(CArchive& ar)

End

Một phần của tài liệu THIẾT KẾ HỆ THỐNG KIỂM TRA CÁC QUAN HỆ HÌNH HỌC TRONG 3D (Trang 45 - 48)

Tải bản đầy đủ (DOC)

(48 trang)
w