BÁO CÁO CHUYÊN ĐỀ HỌC PHẦN ĐỒ HỌA MÁY TÍNH ĐỀ TÀI MÔ PHỎNG CHUYỂN ĐỘNG TÀ U VŨ TRỤ

51 16 0
BÁO CÁO CHUYÊN ĐỀ HỌC PHẦN ĐỒ HỌA MÁY TÍNH ĐỀ TÀI MÔ PHỎNG CHUYỂN ĐỘNG TÀ U VŨ TRỤ

Đ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

TRƯỜNG ĐẠI HỌC ĐIỆN LỰC KHOA CÔNG NGHỆ THÔNG TIN BÁO CÁO CHUYÊN ĐỀ HỌC PHẦN ĐỒ HỌA MÁY TÍNH ĐỀ TÀI: MÔ PHỎNG CHUYỂN ĐỘNG TÀU VŨ TRỤ Sinh viên thực : LÊ VIỆT LÂM HOÀNG MINH DUY NGUYỄN MẠNH DŨNG Giảng viên hướng dẫn : NGÔ TRƯỜNG GIANG Ngành : CÔNG NGHỆ THÔNG TIN Chuyên ngành : CƠNG NGHỆ PHẦN MỀM Lớp : D13CNPM4 Khóa : 2018-2023 Hà Nội, tháng năm 2020 PHIẾU CHẤM ĐIỂM STT Họ tên sinh viên LÊ VIỆT LÂM HOÀNG MINH DUY NGUYỄN MẠNH DŨNG Họ tên giảng viên Nội dung thực Chữ ký Điểm Chữ ký Ghi Giảng viên chấm 1: Giảng viên chấm 2: Contents Chương 1: Các Thuật Toán Cơ Bản 4 Thuật toán Bressenham 1.1 Ý tưởng thuật toán Bressenham 1.2 Áp dụng thuật toán Bressenham để vẽ đường thẳng 1.3 Áp dụng thuật toán Bressenham để vẽ đường tròn 1.4 Áp dụng thuật tốn Bressenham để vẽ hình elip 13 Thuật toán Midpoint 16 2.1 Thuật toán Midpoint vẽ đường thẳng 16 2.2 Thuật toán Midpoint vẽ đường tròn 19 2.3 Thuật tốn midpoint vẽ hình elip 23 Thuật tốn tơ màu loang .28 3.1 Khái niệm .28 3.2 Giải thuật .29 Thuật tốn tơ màu qt .32 4.1 Khái niệm .32 4.2 Thuật giải .32 Chương 2: Phát triển ứng dụng 33 Phân tích toán 33 1.1 Yêu cầu toán 33 1.2 Các bước thực 33 Giải toán .33 2.1 Khởi tạo môi trường 3D thiết lập hiệu ứng 33 2.2 Vẽ đối tượng đồ họa 34 Kết thực nghiệm 48 LỜI NÓI ĐẦU Đồ họa máy tính lĩnh vực hấp dẫn phát triển mau lẹ, làm thay đổi hoàn toàn việc tương tác người máy Nhờ vào đồ họa máy tính mà hoạt động ứng dụng máy tính đời, đồ họa giúp cho việc giao tiếp với máy tính trở nên dễ dàng hơn, ứng dụng nhiều lĩnh vực khoa học công nghệ, y học, kiến trúc, giải trí… Trên sở đó, mơn đồ họa máy tính đưa vào giảng dạy chuyên ngành công nghệ thông tin lĩnh vực liên quan khác trường đại học Môn tiền đề cung cấp cho sinh viên lý thuyết sở nhằm kiến tạo xử lý thông tin dạng hình ảnh giúp cho việc giao tiếp với máy tính dễ dàng mơn ngành khác như: xử lý ảnh, kỹ thuật CAD Báo cáo chia làm chương, chương I thuật toán bản, chương II phát triển ứng dụng :”Mô chuyển động tàu vũ trụ” Chương I : Cài đặt thuật tốn Midpoint, bressenham vẽ đường thẳng (hệ số góc - nhập tọa độ điểm đầu , điểm cuối ), đường tròn (nhập tọa độ tâm bán kính) Xây dựng dạng hàm gọi thực thi chương trình chính.Cài đặt thuật tốn tơ màu tràn, tô màu theo đường quét Chương II: Phát tiển ứng dụng sử dụng hàm OpenGL để phát triển ứng dụng 3D phản ánh kỹ thuật đồ họa 3D: Tô màu, chiếu sáng, textmaping, phản chiếu, chuyển động Chương 1: Các Thuật Toán Cơ Bản Thuật toán Bressenham 1.1 Ý tưởng thuật toán Bressenham - Thay phép toán phép toán số thực phép toán số nguyên - Giảm thời gian thuật toán so với DDA - Hạn chế phép toán thực để giảm tải thời gian 1.2 Áp dụng thuật toán Bressenham để vẽ đường thẳng 1.2.1 Đặt vấn đề Cho điểm A (x1, y1) B (x2, y2) Vẽ đường thẳng qua A, B 1.2.2 Thuật giải Thuật toán Bresenham đưa cách chọn yi+1 là yi hay yi+1 theo hướng khác Đó so sánh khoảng cách điểm thực y với điểm gần kề Nếu điểm nằm gần điểm thực chọn làm điểm vẽ Hình 1.1: Mơ tả thuật tốn Bressenham Ta có phương trình đường thẳng có dạng: y = mx +b, m = ∆y / ∆x Gọi d1 khoảng cách từ điểm M đến điểm Q Gọi d2 khoảng cách từ điểm M đến điểm P Ta có: Nhìn vào hình bên ta thấy: d1 = yi +1 -y = yi +1 – m(xi+1) – b d2 = y- yi = m(xi+1) + b - yi Ta xét (d1-d2): d1-d2 > => d1>d2 => Yi+1 = Yi +1 Ngược lại: d1 ≤ d2 => Yi+1 = Yi d1 – d2 = [m(xi + 1) + b - yi] – [yi + - m(xi + 1) - b] = m(xi + 1) + b – yi - yi – + m(xi + 1) + b = 2m(xi +1) – 2yi + 2b -1 Dễ thấy d1-d2 tồn phép toán với số thực m = dy/dx Và để tuân thủ theo ý tưởng thuật toán thực phép toán số nguyên, ta khử phân số (triệt tiêu mẫu số) cách nhân vế với dx: Đặt pi = dx(d1 -d2)  Pi = dx[2m(xi +1) + 2b – 2yi -1] Thay m = dy/dx vào phương trình ta được: Pi = 2dyxi - 2dxyi + c ( với c = 2dy + (2b – 1)dx ) Mặt khác dx ≥ với trường hợp  Dấu pi dấu với (d1-d2)  pi > => yi+1 = yi +1 pi ≤ => yi+1 = yi ta có Pi+1 = 2dyxi+1 – 2dxyi+1 + c Pi = 2dyxi - 2dxyi + c  Pi+1 - Pi = 2dy(xi+1 - xi) – 2dx(yi+1- yi) = 2dy – 2dx(yi+1 – yi ) với (xi+1 – xi) = Pi+1 = Pi + 2dy – 2dx(yi+1 – yi ) Nếu Pi < => yi+1 = yi => Pi+1 = Pi + 2dy Ngược lại Pi < => yi+1 = yi +1 => Pi+1 = Pi + 2(dy – dx) Ta có P1 = 2x1dy – 2y1dx + c = 2x1dy -2((dy/dx)x1 + b)dx + 2dy + (2b -1)dx = 2dy -dx Lưu đồ thuật tốn: Hình 1.2: Lưu đồ thuật tốn Bressenham vẽ đường thẳng Code minh họa: { void BrePoint(int x1, int y1, int x2, int y2) glColor3f(1, 0, 0); glBegin(GL_POINTS); int dx = abs(x2 - x1); int dy = abs(y2 - y1); int p = * dy - dx; int c1 = * dy; int c2 = * (dy - dx); int x = x1; int y = y1; glVertex2i(x, y); while (x < x2) { if (p < 0) { p = p + c1; } else { p = p + c2; y++; } x++; glVertex2i(x, y); } glEnd(); return; } 1.3 Áp dụng thuật tốn Bressenham để vẽ đường trịn 1.3.1 Thuật giải Cho đường trịn tâm (xc,yc) bán kính R: (x-xc)^2 + (y-yc)^2 = R^2 Xét đường trịn tâm (xc,yc) ta có : Đường trịn có tính đối xứng nên ta cần vẽ 1/8 cung tròn lấy đối xứng qua điểm: (-x,y), (x,y), (y,x), (y,-x), (x,-y), (-x,-y), (y, -x), (-y,x) Hình 1.3: Hình trịn với điểm đối xứng Ta có xi+1 = xi +1 yi+1 = yi hay yi+1 = yi -1 Phương trình đường trịn tâm (xc,yc) bán kính R : (x-xc)2 + (y-yc)2 = R2 Đặt d1 = yi – y2 d2 = y2 – (yi -1)2 Đặt pi = d1-d2 việc chọn tọa độ yi+1 phụ thuộc dấu pi: Hình 1.4: Xác định vẽ tọa độ

Ngày đăng: 31/01/2023, 19:07

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

Tài liệu liên quan