1. Trang chủ
  2. » Công Nghệ Thông Tin

Bài giảng Đồ họa máy tính: Thuật toán Bresenham - Vẽ đường thẳng

15 24 0

Đ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

Thông tin cơ bản

Định dạng
Số trang 15
Dung lượng 329 KB

Nội dung

Bài giảng Đồ họa máy tính: Thuật toán Bresenham - Vẽ đường thẳng có nội dung giới thiệu về thuật toán Bresenham, cài đặt thuật toán, 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 Bresenham vẽ đường thẳng Xét kDy Dx0,Dy|Dy| Kết hợp vùng • • x tăng Vùng y tăng vùng y giảm int dy = (Dy < 0) ? -1 : 1; Dy = abs(Dy); while (x < x2) { if (p < 0) { p += const1; } else { p += const2; y += dy; } x++; putpixel(x, y, color); } 10 Kết hợp vùng • • Vùng x tăng 1, vùng x giảm y tăng int dx = (Dx < 0) ? -1 : 1; Dx = abs(Dx); while (x != x2) { if (p < 0) { p += const1; } else { p += const2; y++; } x += dx; putpixel(x, y, color); } 11 Kết hợp vùng 1, 4, 5, • • x tăng Dx > 0, giảm Dx < y tăng Dy > 0, giảm Dy < int dx = (Dx < 0) ? -1 : 1; Dx = abs(Dx); int dy = (Dy < 0) ? -1 : 1; Dy = abs(Dy); while (x != x2) { if (p < 0) { p += const1; } else { p += const2; y += dy; } x += dx; putpixel(x, y, color); } 12 Kết hợp vùng 2, 3, 6, 7: x tính theo y • • y tăng Dy > 0, giảm Dy < x tăng Dx > 0, giảm Dx < int dx = (Dx < 0) ? -1 : 1; Dx = abs(Dx); int dy = (Dy < 0) ? -1 : 1; Dy = abs(Dy); while (y != y2) { if (p < 0) { p += const1; } else { p += const2; x += dx; } y += dy; putpixel(x, y, color); } 13 Chương trình hồn chỉnh 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 dx = (Dx < 0) ? -1 : 1; int dy = (Dy < 0) ? -1 : 1; putpixel(x, y, if (Dx > Dy) { int p = * Dy int const1 = Dx = abs(Dx); Dy = abs(Dy); color); – Dx; * Dy, const2 = * (Dy-Dx); while (x (x != x2) x2) { if (p < 0) { p += const1; } else { p += const2; y += dy; } x += dx; putpixel(x, y, color); } } else {// đổi vai trò x y … } } 14 Bài tập Cài đặt thuật tốn Bresenham vẽ hình sau 15 ... xi+1=xi+1 Thuật toán Bresenham (tiếp) • d1 - d2 = (2y – 2yi – 1) số thực chứa k • Xét pi = Dx (d1 - d2) = Dx (2y - 2yi - 1) = 2Dy xi - 2Dx yi + C – C = 2Dy + (2b - 1)Dx • Do dấu pi (d1-d2) giống... Phương trình đường thẳng qua điểm (x 1, y1) (x2, y2) y=kx+m với m=Dy/Dx m=y1-kx1 • Đặt d1=y-yi d2=(yi+1)-y, việc chọn tọa độ yi+1 phụ thuộc vào d1 d2 ( hay dấu d1 - d2): – Nếu d1-d2

Ngày đăng: 11/05/2021, 01:36

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN