Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 23 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
23
Dung lượng
696,89 KB
Nội dung
lOMoARcPSD|17160101 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ơ chuyển động Trái Đất Sinh viên thực : Nguyễn Văn Huy Giảng viên hướng dẫn : Thầy Ngô Trường Giang Chuyên ngành : CÔNG NGHỆ PHẦN MỀM Lớp : D14CNPM4 Hà Nội, tháng năm 2022 0|Page lOMoARcPSD|17160101 PHIẾU CHẤM ĐIỂM Sinh viên thực hiện: Họ tên Chữ ký Ghi Chữ ký Ghi Giảng viên chấm: Họ tên Giảng viên chấm : Giảng viên chấm : 1|Page lOMoARcPSD|17160101 MỤC LỤC LỜI MỞ ĐẦU CHƯƠNG THUẬT TOÁN CƠ BẢN TRONG ĐỒ HỌA 2D 1.1 Thuật toán vẽ đoạn thẳng .2 1.1.1 Thuật toán DDA (Digital Defferencial Analyzer) hay thuật toán tăng dần (Basic Incremental Algorithm) .2 1.1.2 Thuật toán Bresenham vẽ đường thẳng 1.1.3 Thuật toán trung điểm vẽ đường thẳng .6 1.1.4 Thuật toán vẽ đường tròn ,elip 1.1.4.1 Thuật toán Bresenham vẽ đường tròn 10 1.1.4.2 Thuật toán trung điểm vẽ đường tròn 11 1.1.4.3 Thuật toán trung điểm vẽ elip 13 CHƯƠNG PHÁT TRIỂN ỨNG DỤNG 3D .15 2.1 Mô tả toán 15 2.2 Mô tả chuyển động hành tinh .16 2.3 Kết thực nghiệm 16 KẾT LUẬN .17 0|Page lOMoARcPSD|17160101 LỜI MỞ ĐẦU Đồ họa máy tính lĩnh vực khoa học máy tính nghiên cứu sở toán học, thuật toán kĩ thuật phép tạo, hiển thị điều khiển hình ảnh hình máy tính Đồ họa máy tính ngày ứng dụng rộng rãi nhiều lĩnh vực khoa học, kĩ thuật, nghệ thuật, kinh doanh, quản lí, … Các ứng dụng đồ họa đa dạng, phong phú phát triển liên tục không ngừng Ngày nay, khơng có chương trình ứng dụng mà không sử dụng kĩ thuật đồ họa để làm tăng tính hấp dẫn Việc mơ tả liệu thơng qua hình ảnh màu sắc đa dạng nó, chương trình đồ họa thường thu hút người sử dụng tính thân thiện, dễ dùng,… kích thích khả sang tạo nâng cao suất làm việc Là sinh viên chúng em tìm hiểu làm quen với số kĩ thuật đồ họa máy tính thơng qua tài liệu, giảng thầy Ngô Trường Giang giảng dạy Với kiến thức học em định chọn đề tài: Xây dựng mơ hình mơ chuyển động hành tinh OpenGL đại 1|Page lOMoARcPSD|17160101 CHƯƠNG THUẬT TOÁN CƠ BẢN TRONG ĐỒ HỌA 2D 1.1 Thuật toán vẽ đoạn thẳng 1.1.1 Thuật toán DDA (Digital Defferencial Analyzer) hay thuật toán tăng dần (Basic Incremental Algorithm) Input: Điểm đầu(x1,y1), điểm cuối(x2,y2), màu tô C Output: Đoạn thẳng nối điểm (x1,y1) (x2,y2) với màu C Phương trình đoạn thẳng qua điểm Chuyển đổi đường quét (Rasterization) Biến đổi đường liên tục thành rời rạc(Sampling) Scan conversion = Sampling Yêu cầu chất lượng đường vẽ 2|Page lOMoARcPSD|17160101 -Hình dạng liên tục -Độ dày độ sáng -Các pixel gần đường”lí tưởng “ hiển thị -Vẽ nhanh DDA- Digital Differential Analyzer = Finite defferences Cho giá trị bước nhảy trục tính giá trị bước nhảy trục theo phương trình y=ax+b Với hệ số góc a nằm khoảng [0,1] -dy=a.dx -Nếu dx = y(i+1)=y(i)+a -Làm trịn số a -Ý tưởng thuật tốn: với bước tính số gia sở bước trước Nhận xét thuật tốn DDA: -Khơng có phép nhân -Có phép chia làm tròn số >chậm Qui tắc tổng quát vẽ đồ họa -Cộng trừ nhanh nhân -Nhân nhanh chia -Sử dụng bảng để đánh giá hàm rời rạc nhanh tính tốn -Tính tốn số nguyên nhanh số thực 3|Page lOMoARcPSD|17160101 -Tránh tính tốn khơng cần thiết nhờ nhận trường hợp đặc biệt đường vẽ 1.1.2 Thuật toán Bresenham vẽ đường thẳng Giả sử vừa vẽ điểm (xi,yi) phải xác định điểm vẽ thuộc pixel liền kề (xi+1,yi),(xi-1,yi),(xi,yi-1),(xi,yi+1), Hình dạng đoạn thẳng phụ thuộc vào giá trị dx dy -dx=0 đường thẳng song song trục y -dy=0 đường thẳng song song trục x -dx>0 tọa độ x biến thiên tăng dần -dxabs(dy) : y=f(x) - Nếu abs(dx) điểm vẽ (x+1,y) hay (x+1, y+1) Việc lựa chọn phụ thuộc vào khoảng cách d: d=d1-d2 -Nếu d>0 ó d1>d2 chọn NE xi+1,yi -Nếu d dnewNE= d(xi+1,yi) =-2a(xi+1)+2yi-2b+1 -2a= d-2a=d+ ∆NE -Tìm dstart -Giả sử điểm khởi đầu xi,yi dstart= -2a(xi+1)+2yi-2b+1 -Mà ta có yi=axi+b => axi=yi-b dstart =-2a+1 Ta có a=dy/dx Nhân vế với dx ta có dstart=-2dy+dx ∆E= -2dy+2dx ∆NE= -2dy Chọn vị trí vẽ x1,y1 Tính tham số thứ d=-2dy+dx Nếu d >0 vị trí vẽ xi+1,yi Ngược lại vị trí vẽ xi+1,yi+1 Tiếp tục tăng x để tính d từ d trước Nếu trước di >0 di+1=di-2dy Ngược lại di+1=di-2dy+2dx n Nếu di+1 vị trí vẽ xi+2,yi Ngược lại vị trí vẽ xi+2,yi+2 Lặp lại bước x= x2 1.1.3 Thuật toán trung điểm vẽ đường thẳng Pitteway công bố năm 1967 , Van Aken cải tiến năm 1984 6|Page lOMoARcPSD|17160101 Giả sử ta chọn P để vẽ , xác định pixel N hay NE -Giao đường thẳng với Xp+1 Q, M trung điểm NE E Ý tưởng : M nằm phía đưởng thẳng ,nếu M phía đường thẳng chọn E,ngược lại chọn NE Nhiệm vụ : Xác định M đâu Phương trình đường thẳng F(x,y) = ax+by+c a = dy ,b=-dx,c=B.dx Giá trị hàm M: F(M) = F(xp+1,yp+1/2)=d Nếu d>0 ,M nằm đường thẳng chọn NE Nếu d