Đang chuẩn bị liên kết để tải về tài liệu:
Bài giảng Đồ họa máy tính: Thuật toán vẽ đường thẳng Bresenham
Không đóng trình duyệt đến khi xuất hiện nút TẢI XUỐNG
Tải xuống
Bài giảng Đồ họa máy tính: Thuật toán vẽ đường thẳng Bresenham có nội dung giới thiệu về thuật toán Bresenham, cài đặt thuật toán cho đường tròn tâm và đường elip tâm, chương trình thuật toán và bài tập. Tham khảo nội dung bài giảng để hiểu rõ hơn về các nội dung trên. | Thuật toán vẽ đường thẳng Bresenham 13 August 2001 Chris Weigle - Comp 136 Mối tương quan giữa X & Y khi độ lớn hệ số góc nhỏ hơn 1 x tăng 1 và y giữ nguyên hay tăng 1 Điều này bảo đảm cho đường thẳng liên tục Nếu độ lớn của hệ số góc lớn hơn 1, chúng ta đổi vai trò của x & y x được gọi là giá trị độc lập và y là giá trị phụ thuộc Dx Dy Thuật toán Bresenham Giới thiệu: Giả sử đường cong được xấp xỉ thành các điểm lần lượt là (xi,yi). Các điểm này có tọa độ nguyên và được hiển thị trên màn hình. Bài toán đặt ra là nếu biết được tọa độ (xi,yi) của bước thứ i, thì điểm ở bước i+1 là (xi+1,yi+1) sẽ được xác định như thế nào. Trong trường hợp hệ số góc 0 Thuật toán Phương trình đường thẳng qua 2 điểm (x1, y1) và (x2, y2) là y=mx+b với m=Dy/Dx và b=y1-mx1. Đặt d1=y-yi và d2=(yi+1)-y, do đó việc chọn tọa độ của yi+1 phụ thuộc vào d1 và d2 ( hay dấu của d1 - d2): Nếu d1-d2 Thuật toán vẽ đường thẳng Bresenham 13 August 2001 Chris Weigle - Comp 136 Mối tương quan giữa X & Y khi độ lớn hệ số góc nhỏ hơn 1 x tăng 1 và y giữ nguyên hay tăng 1 Điều này bảo đảm cho đường thẳng liên tục Nếu độ lớn của hệ số góc lớn hơn 1, chúng ta đổi vai trò của x & y x được gọi là giá trị độc lập và y là giá trị phụ thuộc Dx Dy Thuật toán Bresenham Giới thiệu: Giả sử đường cong được xấp xỉ thành các điểm lần lượt là (xi,yi). Các điểm này có tọa độ nguyên và được hiển thị trên màn hình. Bài toán đặt ra là nếu biết được tọa độ (xi,yi) của bước thứ i, thì điểm ở bước i+1 là (xi+1,yi+1) sẽ được xác định như thế nào. Trong trường hợp hệ số góc 0 Thuật toán Phương trình đường thẳng qua 2 điểm (x1, y1) và (x2, y2) là y=mx+b với m=Dy/Dx và b=y1-mx1. Đặt d1=y-yi và d2=(yi+1)-y, do đó việc chọn tọa độ của yi+1 phụ thuộc vào d1 và d2 ( hay dấu của d1 - d2): Nếu d1-d2 Thuật toán (cont.) d1 - d2 = (2y – 2yi – 1) là một số thực do chứa m Xét pi = Dx (d1 - d2) = Dx (2y - 2yi - 1) = 2Dy xi - 2Dx yi + C C = 2Dy + (2b - 1)Dx Do dấu của pi và (d1-d2) giống nhau nên khi xét dấu của pi thì ta xác định được yi+1 Mặc khác, pi+1 – pi = (2Dy xi+1 - 2Dx yi+1 + C) - (2Dy xi - 2Dx yi + C) = 2Dy – 2Dx(yi+1 – yi) Từ đây, ta suy ra cách tính pi+1 theo pi: Nếu pi Begin p = 2Dy - Dx; const1=2Dy; const2=2(Dy-Dx); x = x1; y = y1; putpixel(x,y,color); x Chương trình (Dx>Dy>0) void BresenhamLine(int x1, int y1, int x2, int y2, int color) { int Dx = x2 – x1, Dy = y2 – y1; int x = x1, y = y1; int p = 2 * Dy – Dx; int const1 = 2 * Dy, const2 = 2 * (Dy-Dx); .