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

Slide Đồ họa máy tính Bài 3 : Thuật Toán Vẽ Đường Thẳng Bresenham

14 986 2

Đ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 14
Dung lượng 1,44 MB

Nội dung

vẽ đường thẳng bằng thuật toán bresenham .Dây là slide giảng bresenham mình làm ra và lên kế hoạch để thuyết chình trước lớp . nay đăng lên đây để cho mọi người xem qua . Mình đã thàng công khi thuyết trình nha . chỉ cần ae tự tin còn về slide thì cực kì đầy đủ cho ae . Nếu thích thì tải về ủng hộ mình nha

Bài 3: Thuật Tốn Vẽ Đường Thẳng - Bresenham Nhóm thực hiện: Nguyễn Hồng Kỳ Lê Văn Thiêm Nguyễn Xuân Tuấn Bài 3: Thuật toán vẽ đường thẳng - Bresenham 1) Giới thiệu thuật toán Trong thuật toán DDA việc cộng dồn số thực m vào y công thức ( yk + = yk + m ) làm tròn dẫn đến tích lũy sai số làm cho hàm làm tròn có kết sai, dẫn tới việc xác định vị trí điểm vẽ bị chệch hướng so với đường thẳng thực (điều xảy ta vẽ đường thẳng dài) Hơn nữa, thuật tốn DDA bị hạn chế mặt tốc độ phép tốn cộng dồn số thực làm tròn Để khắc phục mặt hạn chế giáo sư khoa học máy tính IBM Jack Elton Bresenham thiết kế thuật toán vẽ đường thẳng Bresenham vào năm 1962 công ty IBM Và sau giải thuật tiếp tục phát triển để vẽ đường cong Bài 3: Thuật toán vẽ đường thẳng - Bresenham  2)  Ý tưởng thuật toán Thay phép toán số thực thuật toán DDA phép toán số nguyên Hạn chế phép toán thực để giảm thời gian so với thuật toán DDA 3) Đặt vấn đề Cho điểm A(, ) B(, ) Vẽ đường thẳng qua A B Bài 3: Thuật toán vẽ đường thẳng - Bresenham 3) Giải thuật Thuật toán Bresenham đưa cách chọn yk +1 yk yk + thuật toán DDA theo hướng khác Đó so sánh khoảng cách điểm thực yk + với điểm yk yk + Nếu điểm nằm gần kề với điểm thực yk + chọn làm điểm vẽ để vẽ đường thẳng Bài 3: Thuật toán vẽ đường thẳng - Bresenham 3) Giải thuật Ta   có phương trình đường thẳng qua điểm A(x1, y1) B(x2, y2) : y = mx + b với (m = Tại bước ta cho x tăng lên đơn vị tức là: xk + = x k + Bài 3: Thuật toán vẽ đường thẳng - Bresenham  3)  Giải thuật Ta xét m : Gọi yk + giá trị thực đường thẳng xk + bước thứ k + đó: yk + = m(xk + ) + b = m(xk + ) +b Gọi d1 khoảng cách từ yk + đến yk d2 khoảng cách từ yk + đến yk + Ta có: d1 = yk + – yk = m(xk + ) + b – yk d2 = yk +1 – yk + = yk +1 – [ m(xk +1 ) b ] d2 = yk +1 – m(xk +1 ) b Lại có: d = d1 – d2 = (yk + – yk ) – (yk +1 – yk + 1) + 1) + b ] – [ yk +1 – m(xk +1 ) b ] Bài 3: Thuật toán vẽ đường thẳng - Bresenham  3)  Giải thuật + 2b Tuy nhiên số thực m =, để ý tưởng thuật toán thực phép toán số nguyên ta khử mẫu số cách nhân vế Khi ta được: [+ 2b Đặt = thay m = ta được: = [ 2] =[ ] = +c với c = Bài 3: Thuật toán vẽ đường thẳng - Bresenham  3)  Giải thuật Do m với trường hợp Dấu dấu với > yk + = yk + yk + = yk Tính = + c 1) Bài 3: Thuật toán vẽ đường thẳng - Bresenham  3)  Giải thuật Nếu > yk + = yk + =+ Nếu yk + = yk =+ ) Ta có: = +c với c = = 2(+ b) + =2 Bài 3: Thuật toán vẽ đường thẳng - Bresenham  3)  Giải thuật Các bước thuật toán Bresenham: Bước 1: Tính giá trị , , , Gán tọa độ vẽ x = , y = y1 Vẽ điểm có tọa độ (x, y) Bước 2: Kiểm tra điều kiện x Nếu khơng thỏa mãn kết thúc chương trình Nếu thỏa mãn chuyển đến bước Bài 3: Thuật toán vẽ đường thẳng - Bresenham  3)  Giải thuật Các bước thuật toán Bresenham: Bước 3: Kiểm tra điều kiện P < Nếu thỏa mãn x = x + 1, P = P + vẽ điểm có tọa độ (x, y) sau quay lại bước Nếu khơng thỏa mãn đến bước Bước 4: P = P + , y = y + Vẽ điểm có tọa độ (x, y) sau quay lại bước Bài 3: Thuật toán vẽ đường thẳng - Bresenham 4) Lưu đồ thuật toán Bài 3: Thuật toán vẽ đường thẳng - Bresenham 5) Code minh họa void bresenham(int x1, int y1, int x2, int y2) { int dx = x2 - x1; int dy = y2 - y1; int p = 2*dy - dx; int c1 = 2*dy; int c2 = 2*(dy - dx); int x = x1; int y = y1; putpixel(x, y, 3); while(x yk + = yk + yk + = yk Tính = + c 1) Bài 3: Thuật toán vẽ đường thẳng. .. học máy tính IBM Jack Elton Bresenham thiết kế thuật toán vẽ đường thẳng Bresenham vào năm 1962 công ty IBM Và sau giải thuật tiếp tục phát triển để vẽ đường cong Bài 3: Thuật toán vẽ đường thẳng

Ngày đăng: 04/01/2019, 19:51

TỪ KHÓA LIÊN QUAN

w